public class Person implements Runnable, Swimmable {
@Override
public void run() {
System.out.println("Person is running.");
}
@Override
public void swim() {
System.out.println("Person is swimming.");
}
// ä»–ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚„ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’è¿½åŠ ã—ã¦ã‚‚良ã„
}
ã“ã®ä¾‹ã§ã¯ã€Person クラス㌠Runnable インターフェイス㨠Swimmable インターフェイスを実装ã—ã¦ã„ã¾ã™ã€‚ãれãžã‚Œã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã€run メソッドã§ã¯ “Person is running.” ã¨è¡¨ç¤ºã—ã€swim メソッドã§ã¯ “Person is swimming.” ã¨è¡¨ç¤ºã—ã¦ã„ã¾ã™ã€‚ã“ã®ã‚ˆã†ã«ã—ã¦ã€Person クラスã¯è¤‡æ•°ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã—ã€ãれãžã‚Œã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æä¾›ã—ã¦ã„ã¾ã™ã€‚
複数ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®å®Ÿè£…
Javaã«ãŠã„ã¦ã¯1ã¤ã®ã‚¯ãƒ©ã‚¹ãŒè¤‡æ•°ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã‚’åŒæ™‚ã«å®Ÿè£…ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€1ã¤ã®ã‚¯ãƒ©ã‚¹ãŒè¤‡æ•°ã®ç•°ãªã‚‹åž‹ã‚„振る舞ã„ã‚’æŒã¤ã“ã¨ãŒã§ãã€æŸ”軟性ãŒå‘上ã—ã¾ã™ã€‚以下ã«åŸºæœ¬çš„ãªæ¦‚念を示ã—ã¾ã™ã€‚
- 複数ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®å®Ÿè£…:
public class MyClass implements Interface1, Interface2, Interface3 {
// インターフェイスã§å®£è¨€ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰ã‚’実装ã™ã‚‹
}
implements ã‚ーワードを使用ã—ã¦ã€è¤‡æ•°ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを列挙ã—ã¾ã™ã€‚
å„インターフェイスã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’クラス内ã§å®Ÿè£…ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
- インターフェイスã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…:
public class MyClass implements Interface1, Interface2 {
@Override
public void method1() {
// Interface1ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…
}
@Override
public void method2() {
// Interface2ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…
}
}
å„インターフェイスã§å®£è¨€ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰ã‚’実装ã—ã¾ã™ã€‚
@Override アノテーションを使用ã—ã¦ã€ãƒ¡ã‚½ãƒƒãƒ‰ãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã—ã¦ã„ã‚‹ã“ã¨ã‚’明示的ã«ç¤ºã—ã¾ã™ã€‚
- インターフェイスã®ãƒ‡ãƒ•ォルトメソッド:
public class MyClass implements Interface1, Interface2 {
@Override
public void method1() {
// Interface1ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…
}
@Override
public void method2() {
// Interface2ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…
}
// インターフェイスã®ãƒ‡ãƒ•ォルトメソッドをオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½
@Override
public void defaultMethod() {
// カスタムãªå®Ÿè£…
}
}
インターフェイスã«ãƒ‡ãƒ•ォルトメソッドãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã€å®Ÿè£…クラスã§ã‚ªãƒ¼ãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
ã“ã®ã‚ˆã†ã«ã—ã¦ã€1ã¤ã®ã‚¯ãƒ©ã‚¹ãŒè¤‡æ•°ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã“ã¨ã§ã€ç•°ãªã‚‹æŒ¯ã‚‹èˆžã„や契約をæŒã¤æŸ”軟ãªã‚¯ãƒ©ã‚¹è¨è¨ˆãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚ã“れã¯Javaã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®å¼·åŠ›ãªæ©Ÿèƒ½ã®ä¸€ã¤ã§ã‚りã€ã‚¯ãƒ©ã‚¹é–“ã®å”力やå†åˆ©ç”¨æ€§ã‚’高ã‚ã‚‹ã®ã«å½¹ç«‹ã¡ã¾ã™ã€‚
「017 インターフェイスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント