例ã¨ã—ã¦ã€JavaãŒæä¾›ã—ã¦ã„る標準㮠List ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã«æ–°ã—ã„ãƒ¡ã‚½ãƒƒãƒ‰ã‚’è¿½åŠ ã™ã‚‹æ‹¡å¼µã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを作æˆã™ã‚‹ã¨ã—ã¾ã™ã€‚
import java.util.List;
// 拡張インターフェイスã®ä½œæˆ
interface ExtendedList<T> extends List<T> {
// æ–°ã—ã„メソッドã®è¿½åŠ
void customMethod();
}
// 使用例
class ExampleClass implements ExtendedList<String> {
@Override
public void customMethod() {
// æ–°ã—ã„メソッドã®å®Ÿè£…
}
// List インターフェイスã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…
@Override
public int size() {
// 実装
return 0;
}
@Override
public boolean isEmpty() {
// 実装
return false;
}
// ä»–ã® List インターフェイスã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚‚実装...
}
ã“ã®ä¾‹ã§ã¯ã€ExtendedList インターフェイス㌠List インターフェイスを拡張ã—ã€æ–°ã—ã„メソッド customMethod ã‚’è¿½åŠ ã—ã¦ã„ã¾ã™ã€‚ãã—ã¦ã€ExampleClass クラス㌠ExtendedList インターフェイスを実装ã—ã¦ã„ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ExampleClass ã¯æ—¢å˜ã® List メソッドを使用ã§ãã‚‹ã ã‘ã§ãªãã€æ–°ã—ã„メソッドも利用ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚
æ—¢å˜ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã®æ‹¡å¼µ
æ—¢å˜ã®Javaã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã«æ–°ã—ã„ãƒ¡ã‚½ãƒƒãƒ‰ã‚„æ©Ÿèƒ½ã‚’è¿½åŠ ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€æ—¢å˜ã®ã‚³ãƒ¼ãƒ‰ã‚’変更ã›ãšã«æ–°ã—ã„æ©Ÿèƒ½ã‚’è¿½åŠ ã§ãã¾ã™ã€‚以下ã«ã€ã“ã®æ‰‹æ³•ã®æ¦‚è¦ã‚’解説ã—ã¾ã™ã€‚
æ–°ã—ã„æ‹¡å¼µã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®ä½œæˆ:
æ—¢å˜ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを拡張ã™ã‚‹æ–°ã—ã„インターフェイスを作æˆã—ã¾ã™ã€‚
例ãˆã°ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ã—ã¦ã€ExistingInterface ã‚’æ‹¡å¼µã™ã‚‹ ExtendedInterface を作æˆã—ã¾ã™ã€‚
interface ExtendedInterface extends ExistingInterface {
// æ–°ã—ã„メソッドや機能を追åŠ
void newMethod();
}
æ–°ã—ã„メソッドã®å®Ÿè£…:
æ–°ã—ã„メソッドã¯ã€æ–°ã—ã„æ‹¡å¼µã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã‚¯ãƒ©ã‚¹ã§å…·ä½“çš„ãªå®Ÿè£…ãŒè¡Œã‚れã¾ã™ã€‚
class MyClass implements ExtendedInterface {
// æ—¢å˜ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…
// æ–°ã—ã„メソッドã®å®Ÿè£…
@Override
public void newMethod() {
// 実装
}
}
æ—¢å˜ã®ã‚¯ãƒ©ã‚¹ã®å¤‰æ›´ä¸è¦:
æ—¢å˜ã®ã‚¯ãƒ©ã‚¹ã¯å¤‰æ›´ã™ã‚‹å¿…è¦ãŒã‚りã¾ã›ã‚“。ãã®ã¾ã¾æ–°ã—ã„æ‹¡å¼µã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
æ—¢å˜ã®ã‚¯ãƒ©ã‚¹ã§ã®åˆ©ç”¨:
æ—¢å˜ã®ã‚¯ãƒ©ã‚¹ã¯ã€æ–°ã—ã„æ‹¡å¼µã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã“ã¨ã§ã€æ—¢å˜ã®æ©Ÿèƒ½ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¤ã¤ã€æ–°ã—ã„æ©Ÿèƒ½ã‚‚利用ã§ãã¾ã™ã€‚
ExistingInterface obj = new MyClass();
obj.existingMethod(); // æ—¢å˜ã®ãƒ¡ã‚½ãƒƒãƒ‰
((ExtendedInterface) obj).newMethod(); // æ–°ã—ã„メソッド
ã“ã®æ‰‹æ³•ã«ã‚ˆã‚Šã€æ—¢å˜ã®ã‚³ãƒ¼ãƒ‰ã‚’変更ã›ãšã«æ–°ã—ã„æ©Ÿèƒ½ã‚’å°Žå…¥ã§ãã€æŸ”軟性ãŒå‘上ã—ã¾ã™ã€‚
「017 インターフェイスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント