// æç”»å¯èƒ½ãªã‚ªãƒ–ジェクトを示ã™ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイス
interface Drawable {
void draw();
}
// 形状を表㙠Shape クラス
class Shape implements Drawable {
// Shape クラス㌠Drawable インターフェイス㮠draw メソッドを実装
@Override
public void draw() {
System.out.println("Drawing a shape");
// æç”»ã®å…·ä½“çš„ãªå‡¦ç†ã‚’ã“ã“ã«è¿½åŠ
}
// ä»–ã®å½¢çжã«é–¢ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚„プãƒãƒ‘ãƒ†ã‚£ã‚’è¿½åŠ ã§ãã‚‹
}
ã“ã®ä¾‹ã§ã¯ã€Drawable インターフェイスã«ã¯ draw メソッドãŒã‚りã¾ã™ã€‚ãã—ã¦ã€Shape クラスã¯ã“ã® Drawable インターフェイスを実装ã—ã¦ã„ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€Shape ã‚¯ãƒ©ã‚¹ã¯æç”»å¯èƒ½ãªã‚ªãƒ–ジェクトã¨ã—ã¦æ‰±ã†ã“ã¨ãŒã§ãã¾ã™ã€‚draw メソッド内ã«ã¯å…·ä½“çš„ãªæç”»å‡¦ç†ãŒå®Ÿè£…ã•れるã“ã¨ãŒæœŸå¾…ã•れã¾ã™ã€‚
クラスã¨ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®é–¢ä¿‚性
クラスã¨ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã¯ã€Javaã«ãŠã‘るオブジェクト指å‘プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®åŸºæœ¬çš„ãªè¦ç´ ã§ã™ã€‚ã“れらã®è¦ç´ を組ã¿åˆã‚ã›ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã§ã€æŸ”軟ã§åŠ¹æžœçš„ãªã‚³ãƒ¼ãƒ‰ã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚以下ã«ã€ã‚¯ãƒ©ã‚¹ã¨ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®é–¢ä¿‚性ã«ã¤ã„ã¦è§£èª¬ã—ã¾ã™ã€‚
- 継承(Inheritance):
- クラスã¯åˆ¥ã®ã‚¯ãƒ©ã‚¹ã‚’継承ã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€åクラスã¯è¦ªã‚¯ãƒ©ã‚¹ã®ãƒ•ィールドやメソッドを継承ã—ã€å†åˆ©ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
- インターフェイスも継承ã§ãã¾ã™ã€‚インターフェイスã®ç¶™æ‰¿ã§ã¯ã€æ–°ã—ã„ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ãŒæ—¢å˜ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’å«ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚
- 実装(Implementation):
- インターフェイスã¯ã€ã‚¯ãƒ©ã‚¹ãŒå®Ÿè£…ã™ã‚‹ãŸã‚ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’定義ã—ã¾ã™ã€‚クラスã¯ã“れらã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’実装ã—ã€å¿…è¦ãªæ©Ÿèƒ½ã‚’æä¾›ã—ã¾ã™ã€‚
- クラスãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã“ã¨ã§ã€ãã®ã‚¯ãƒ©ã‚¹ã¯ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスãŒå®šç¾©ã™ã‚‹æŒ¯ã‚‹èˆžã„ã‚’æŒã¤ã“ã¨ãŒæœŸå¾…ã•れã¾ã™ã€‚
- 多é‡ç¶™æ‰¿ã®ä»£æ›¿æ‰‹æ®µ:
- Javaã§ã¯ã€ã‚¯ãƒ©ã‚¹ã¯å˜ä¸€ã®è¦ªã‚¯ãƒ©ã‚¹ã—ã‹ç¶™æ‰¿ã§ãã¾ã›ã‚“ãŒã€è¤‡æ•°ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å¤šé‡ç¶™æ‰¿ã®æŸ”軟性をæä¾›ã—ã¤ã¤ã€ã‚¯ãƒ©ã‚¹ã®ç‹¬ç«‹æ€§ã‚’ä¿ã¤ã“ã¨ãŒã§ãã¾ã™ã€‚
- コードã®å…±æœ‰ã¨æ‹¡å¼µ:
- インターフェイスを使用ã™ã‚‹ã“ã¨ã§ã€ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ãŒå…±é€šã®æŒ¯ã‚‹èˆžã„ã‚’æŒã¤ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã‚³ãƒ¼ãƒ‰ã®å†åˆ©ç”¨æ€§ãŒå‘上ã—ã€ãƒ¡ãƒ³ãƒ†ãƒŠãƒ³ã‚¹ãŒå®¹æ˜“ã«ãªã‚Šã¾ã™ã€‚
- インターフェイスã¯ã‚¯ãƒ©ã‚¹ã«è¿½åŠ ã•れる新ã—ã„æŒ¯ã‚‹èˆžã„を定義ã™ã‚‹ãŸã‚ã€æ—¢å˜ã®ã‚¯ãƒ©ã‚¹ã«æ–°ã—ã„æ©Ÿèƒ½ã‚’è¿½åŠ ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
- ãƒãƒªãƒ¢ãƒ¼ãƒ•ィズム:
- インターフェイスを使用ã™ã‚‹ã¨ã€ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ãŒåŒã˜ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€åŒã˜ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを介ã—ã¦ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ã®ã‚ªãƒ–ジェクトã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã€çµ±ä¸€çš„ãªæ–¹æ³•ã§æ“作ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
ç·ã˜ã¦ã€ã‚¯ãƒ©ã‚¹ã¨ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã¯ç•°ãªã‚‹å½¹å‰²ã‚’æžœãŸã—ã¾ã™ãŒã€é©åˆ‡ã«çµ„ã¿åˆã‚ã›ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã§ã€æŸ”è»Ÿã§æ‹¡å¼µå¯èƒ½ãªã‚¢ãƒ—リケーションを構築ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
「017 インターフェイスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント