黑馬程序員——關於接口

---------------------- <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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章