Javaã«ãŠã„ã¦ã€Œã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã€ã¯éžå¸¸ã«é‡è¦ãªæ¦‚念ã§ã‚りã€ãã®ç†è§£ã¯ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®åŸºæœ¬çš„ãªåŽŸå‰‡ã‚„è¨è¨ˆãƒ‘ターンã«å¯¾ã™ã‚‹ç†è§£ã‚’æ·±ã‚る上ã§é‡è¦ã§ã™ã€‚以下ã«ã€Javaå¦ç¿’ã«ãŠã„ã¦ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスをç†è§£ã™ã‚‹é‡è¦æ€§ã‚’説明ã—ã¾ã™ã€‚
- 抽象化ã®å®Ÿç¾: ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã¯æŠ½è±¡ãƒ‡ãƒ¼ã‚¿åž‹ã‚’è¡¨ç¾ã™ã‚‹ãŸã‚ã®æ–¹æ³•ã§ã™ã€‚クラスãŒã©ã®ã‚ˆã†ãªãƒ¡ã‚½ãƒƒãƒ‰ã‚’æä¾›ã™ã‚‹ã¹ãã‹ã‚’定義ã™ã‚‹ã“ã¨ã§ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã¯æŠ½è±¡çš„ãªãƒ¬ãƒ™ãƒ«ã§ã‚³ãƒ¼ãƒ‰ã®è¦ä»¶ã‚’表ç¾ã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å…·ä½“çš„ãªå®Ÿè£…ã®è©³ç´°ã‹ã‚‰åˆ†é›¢ã•ã‚Œã€æŠ½è±¡çš„ãªæ¦‚念をクラスãŒã©ã®ã‚ˆã†ã«æä¾›ã™ã‚‹ã‹ãŒæ˜Žç¢ºã«ãªã‚Šã¾ã™ã€‚
- 多é‡ç¶™æ‰¿ã®ä»£æ›¿: Javaã¯å˜ä¸€ç¶™æ‰¿ã—ã‹ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“ãŒã€è¤‡æ•°ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã“ã¨ã§ã€ã‚¯ãƒ©ã‚¹ã¯ç•°ãªã‚‹ã‚³ãƒ¼ãƒ‰ã‹ã‚‰è¤‡æ•°ã®æ©Ÿèƒ½ã‚’å–り入れるã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€æŸ”軟ã§å†åˆ©ç”¨å¯èƒ½ãªã‚³ãƒ¼ãƒ‰ã‚’書ãã“ã¨ãŒã§ãã¾ã™ã€‚
- プãƒã‚°ãƒ©ãƒ ã®ä¿å®ˆæ€§å‘上: インターフェイスã¯ãƒ—ãƒã‚°ãƒ©ãƒ ã®ä¿å®ˆæ€§ã‚’å‘上ã•ã›ã¾ã™ã€‚æ–°ã—ã„ã‚¯ãƒ©ã‚¹ã‚’è¿½åŠ ã™ã‚‹éš›ã«ã€æ—¢å˜ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã«é©åˆã•ã›ã‚‹ã“ã¨ã§ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®å¤‰æ›´ãŒå®¹æ˜“ã«ãªã‚Šã¾ã™ã€‚ã¾ãŸã€æ—¢å˜ã®ã‚³ãƒ¼ãƒ‰ã«ä¿®æ£ã‚’åŠ ãˆãšã«æ–°ã—ã„æ©Ÿèƒ½ã‚’è¿½åŠ ã§ãã‚‹ãŸã‚ã€å¤‰æ›´ã«å¯¾ã™ã‚‹è€æ€§ãŒå‘上ã—ã¾ã™ã€‚
- コードã®ä¸€èˆ¬åŒ–ã¨æŸ”軟性: インターフェイスã¯ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ã«å…±é€šã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æä¾›ã—ã€ã“れã«ã‚ˆã‚Šã‚³ãƒ¼ãƒ‰ã®ä¸€èˆ¬åŒ–ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚ã“ã®ä¸€èˆ¬åŒ–ã«ã‚ˆã‚Šã€åŒã˜ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ã‚’交æ›ã™ã‚‹ã“ã¨ãŒã§ãã€æŸ”軟性ãŒå¢—ã—ã¾ã™ã€‚
- è¨è¨ˆãƒ‘ターンã®é©ç”¨: インターフェイスã¯ã‚½ãƒ•トウェアè¨è¨ˆãƒ‘ターンã®å®Ÿè£…ã«ãŠã„ã¦ã‚‚é‡è¦ãªå½¹å‰²ã‚’æžœãŸã—ã¾ã™ã€‚例ãˆã°ã€ã‚¹ãƒˆãƒ©ãƒ†ã‚¸ãƒ¼ãƒ‘ターンやオブザーãƒãƒ¼ãƒ‘ターンãªã©ã€å¤šãã®ãƒ‡ã‚¶ã‚¤ãƒ³ãƒ‘ターンãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを使用ã—ã¦ã„ã¾ã™ã€‚
Javaã§ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®ç†è§£ã¯ã€ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®åŸºæœ¬æ¦‚念やオブジェクト指å‘プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®åŽŸå‰‡ã‚’ç†è§£ã™ã‚‹ä¸Šã§ã®åŸºç›¤ã¨ãªã‚Šã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€æŸ”軟ã§åŠ¹æžœçš„ãªã‚³ãƒ¼ãƒ‰ã‚’è¨è¨ˆã—ã€ä¿å®ˆæ€§ã®é«˜ã„アプリケーションを構築ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
ç·´ç¿’å•題
Javaã«ãŠã„ã¦ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイス(Interface) ã¯ã‚¯ãƒ©ã‚¹ã«å…±é€šã®ãƒ¡ã‚½ãƒƒãƒ‰ã®é›†åˆã‚’定義ã™ã‚‹ãŸã‚ã®é‡è¦ãªä»•組ã¿ã§ã™ã€‚ã“れã¯ã€æŠ½è±¡çš„ãªãƒ‡ãƒ¼ã‚¿åž‹ã‚„機能ã®å¥‘約を表ç¾ã—ã€ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ãŒåŒã˜ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを実装ã™ã‚‹ã“ã¨ã§ã€äºˆã‚定義ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰ã‚’æä¾›ã™ã‚‹ã“ã¨ãŒæœŸå¾…ã•れã¾ã™ã€‚
インターフェイスを使ã†ã“ã¨ã§ã€ã‚¯ãƒ©ã‚¹é–“ã§ã‚³ãƒ¼ãƒ‰ã‚’共有ã—ã€æŸ”è»Ÿã§æ‹¡å¼µæ€§ã®ã‚るプãƒã‚°ãƒ©ãƒ を作æˆã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ã“ã®ç·´ç¿’å•題ã§ã¯ã€åŸºæœ¬çš„ãªã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã®æ¦‚念をå¦ã³ã€å®Ÿéš›ã«ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを定義ã—ã€ãれを実装ã™ã‚‹ã‚¯ãƒ©ã‚¹ã‚’作æˆã™ã‚‹ã“ã¨ã§ã€ãã®æœ‰ç”¨æ€§ã‚’体験ã—ã¦ã¿ã¾ã—ょã†ã€‚
基本構文ã¨å®šç¾©
017-001 å•題 解ç”例
017-002 å•題 解ç”例
017-003 å•題 解ç”例
017-004 å•題 解ç”例
017-005 å•題 解ç”例
実装ã¨ç¶™æ‰¿
017-006 å•題 解ç”例
017-007 å•題 解ç”例
017-008 å•題 解ç”例
デフォルトメソッドã¨é™çš„メソッド
017-009 å•題 解ç”例
017-010 å•題 解ç”例
017-011 å•題 解ç”例
ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã®æ‹¡å¼µ
017-012 å•題 解ç”例
017-013 å•題 解ç”例
017-014 å•題 解ç”例
017-015 å•題 解ç”例
017-016 å•題 解ç”例
クラスã¨ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã®é–¢ä¿‚性
017-017 å•題 解ç”例
017-018 å•題 解ç”例
017-019 å•題 解ç”例
017-020 å•題 解ç”例
017-021 å•題 解ç”例
インターフェイスã®å®Ÿç”¨ä¾‹
017-022 å•題 解ç”例
017-023 å•題 解ç”例
017-024 å•題 解ç”例
017-025 å•題 解ç”例