9、接口

1、接口的定義
接口就是某個事物對外公開的一些功能(操作、方法)的聲明,接口是抽象方法的集合。如果一個類實現了某個接口,那麼它就繼承了這個接口的抽象方法。接口規定了對象間相互通信的規範(標準、契約)。

2、定義接口的語法

  public interface 接口名[extends 接口列表]{  //一個接口也可以擴展其他接口
                定義常量;
                聲明方法,接口默認所有方法都是public abstract的;
                }

3、使用接口的語法

public class  MyClass  implements 接口1【,接口2, 接口3…..】 {
	//實現接口中定義的方法
}
		如:
		public interface X {
			public [abstract] void dox();
			……
}

public interface Y {
			public [abstract] void doy();
			……
}

public interface Z {
			public [abstract] void doz();
			……
}

public class A implements X,Y,Z{
	實現三個方法,只要有一個沒實現,本類將是抽象類
}

a) 使用接口聲明方法和常量,接口中的方法都是抽象方法和public的,也就是說不能有方法體。
b) 接口是更加抽象的抽象的類,接口裏的所有方法都是抽象方法。接口體現了程序設計的多態和低偶合高內聚的設計思想。

4、接口的擴展語法

public interface Powered extends Moveable{
		//額外加入更多的方法
   }

5、類的改進
在這裏插入圖片描述
6、接口與抽象類的區別
a) abstract class 在 Java 語言中表示的是一種繼承關係,一個類只能使用一次繼承關係。但是,一個類卻可以實現多個interface。接口彌補了類的多繼承問題。
b) 在abstract class 中可以有自己的數據成員,也可以有非abstract的成員方法,而在interface中,只能夠有靜態的不能被修改的數據成員(即常量:也就是必須是static final的),所有的成員方法都是abstract的。
c) abstract class和interface所反映出的設計理念不同。其實abstract class表示的是"is-a"概念,interface表示的是"has-a"概念。 注意:當一個行爲與一個類的所屬行爲方法不相關聯時,應該採用接口來實現這個行爲,不能使用抽象類,否則違反面向對象的ISP(Interface Segregation Principle)接口隔離原則和OCP(Open Close Principle)開閉原則。
d) 接口中的方法默認都是 public abstract的; 屬性默認是public final static。
e) 不管是抽象類還是接口都可以實現多態性,開發設計中一般優先使用接口,其次才考慮抽象類和繼承。

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