第六週 接口與抽象類

導航

1.接口語法與注意事項
2.接口支持多重繼承
3.類調用接口的語法
4.接口也是一種類,也可以產生對象,接口的多態性
5.適配器類
6.抽象類定義與用法

————————————————————————————————————————

1.接口語法與注意事項

接口的語法:

[abstract] interface 接口名 {
		[public][abstract] 返回類型   
		方法名(參1,參2) 
}

注意:

1.沒有方法體,static方法也不能用,默認是publicabstract
2.接口中無成員變量,無構造器,不能用接口創建對象
3.接口中的所有方法都是抽像方法,默認也是abstract


2.接口支持多重繼承

[abstract] interface 接口名 extends 接口1,接口2{
}

3.類調用接口的語法

class 類名 implements 接口1,接口2{
}

注意點

1.類中必須實現接口中的所有方法,否則就會有編譯錯誤
2.繼承後方法的訪問修飾符必須強於父類中的方法修飾符,並且繼承類必須使用public修飾

例子

 //接口
interface IBiz{  
		void change();
		boolean withdraw(double amount);
}

//父類
class ClsA{
}

//插入接口實現,不影響父類
class clsB extends ClsA implements IBiz{ 
		public void change(){
		}
		public boolean withdraw(double amount){
		}
}

例子來看,類調用接口時必須將接口中功能都實現
若想選取部分功能實現,就要使用抽象類 往下看把

應當有契約性與穩定性

4.接口也是一種類,也可以產生對象,接口的多態性

但是隻能使用自己接口中的方法,其他父類與接口方法隱藏

舉例:(能夠產生對象)

class clsA implements IBiz,IDao{
}
IBiz obiz = new clsA(); //只能調用自己接口的方法

舉例:接口的多態性

接口
interface IBiz{
	void charge();
}

class ClsA implements IBiz{
	public void change(){
		對應實現的方法
	}
}
class ClsB implements IBiz{
	public void change(){
        對應實現的方法
	}
}

class ClsCall{
	static public void call(IBiz biz){   //傳的是接口的參數
			biz.charge();  //biz只能使用自己接口中的功能
	}
}

改變不同的實現,不影響ClsCall
接着進行調用上面的

IBiz obiz = new ClsA();
ClsCall.call(obiz);

charge調用結果根據AB兩個都不同


5.適配器類

方法作用:

1.實現接口,並對接口中的接口方法提供空實現
2.空實現就是有方法體,但方法體中不提供有效的代碼

舉例子:

接口
interface IBiz{
	void charge();
	boolean withdraw(double amount)
}

適配器
class BizAdapter implements IBiz{
		public void charge(){}
		public boolean withdraw(double amount){
					return false;
		}
}

class Bizlmpl extends BizAdapter{
		public void charge(){
			實現
		}
}

使用適配器有什麼好處呢?
創建一個類並且繼承這個繼承器,就可以使用其中的方法了,可以隨意調用幾個方法。


6.抽象類定義與用法

介於接口與類之間的概念

1.使用abstract修飾,並且其中的方法也要使用abstract修飾
2.可以有構造器,但是不能在new後使用抽象類構造器,也就是說抽象類不能創建對象

最主要就是使用抽象類調用接口時,就不需要實現所有接口的方法

舉例子:

接口
interface IBiz{
	void charge();
	boolean withdraw(double amount);
}
抽象類
abstract class ClsA implements IBiz{
	public boolean withdraw(double amount){
	}
}

抽象方法與其他成員方法與變量有關聯使用抽象類否則使用接口

                                                           可以一起交流討論學習:qq羣891507813
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章