---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO開發S</a>、<a href="http://edu.csdn.net"target="blank">.Net培訓</a>、期待與您交流! ----------------------
3.10接口
1、接口中常見的成員:全局常量和抽象方法
注意:接口中的成員都是公共的,修飾符都是可以省略,但不建議,因爲那樣閱讀性差。
2、實現:類與接口之間的關係(implements)
接口是不可實例化的,只能由子類覆蓋接口中的所有抽象方法後,子類纔可以實例化
3、多實現
1)、出現的原因:java中不支持多繼承,於是改良成多實現,接口的出現避免了單繼承的侷限性
2)、一個類中可以實現多個接口,因爲接口中都是抽象方法,都沒有方法體
3)、實現與實現之間的關係:可以多繼承,因爲接口中都是抽象方法,都沒有方法體。
4)、一個類在繼承另一個類的同時,還可以實現多個接口
4、特點:
1)、接口是對外暴露的規則
2)、接口是程序的功能擴展
3)、接口的出現降低了耦合性(緊密聯繫程度)
4)、接口可以用來多實現
5、接口與抽象類的異同點
1)、相同點:都是不斷向上抽取而來的
2)、不同點:
(1)、前者需要被實現,而且可以多實現;後者需要被繼承,但只能當單繼承。
(2)、前者只能定義抽象方法,必須由子類去實現;後者可以定義抽象與非抽象類方法,子類繼承後,可以直接使用非抽象方法。
(3)、前者在定義體系外的功能擴展;後者可以定義體系的基本共性內容
6、代碼示例
abstract class Student{ abstract void study(); void sleep(){ System.out.println("sleep"); } } interface Smoke{ public abstract void smoking(); } class Zhangsan extends Student implements Smoke{ public void smoking() {}//實現抽菸接口 @Override void study() {}//複寫study方法; } public class AboutInterface { public static void main(String[] args) { Zhangsan zs = new Zhangsan(); zs.sleep(); } }
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS開發</a>、<a href="http://edu.csdn.net"target="blank">.Net培訓</a>、期待與您交流! ----------------------
詳細請查看:<ahref="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>