ppt做視頻 模板下載網(wǎng)站營銷方式和渠道
面向?qū)ο蟮木?#xff0c;最能體現(xiàn)這一點(diǎn)的就是接口!
為什么我們討論設(shè)計(jì)模式都只針對具備了抽象能力的語言(比如C++、Java、C#等),就是因?yàn)樵O(shè)計(jì)模式所研究的,實(shí)際上就是如何合理的去抽象。
接口就是一組規(guī)范,所有實(shí)現(xiàn)的類都要遵守。它是比“抽象類”還“抽象”的“抽象類”,可以更加規(guī)范的對子類進(jìn)行約束。全面地專業(yè)地實(shí)現(xiàn)了:規(guī)范和具體實(shí)現(xiàn)的分離。
在接口這個(gè)特殊類里,不再像上一節(jié)講的普通的抽象類一樣,還可以在抽象類里另外定義普通屬性或者普通方法,在接口里不再允許如此,只允許有抽象方法。
接口是兩個(gè)模塊之間通信的標(biāo)準(zhǔn),通信的規(guī)范。如果能把你要設(shè)計(jì)的模塊之間的接口定義好,就相當(dāng)于完成了系統(tǒng)的設(shè)計(jì)大綱,剩下的就是添磚加瓦的具體實(shí)現(xiàn)了。大家在工作以后,做系統(tǒng)時(shí)往往就是使用“面向接口”的思想來設(shè)計(jì)系統(tǒng)。
接口和實(shí)現(xiàn)類不是父子關(guān)系,是實(shí)現(xiàn)規(guī)則的關(guān)系。比如:我定義一個(gè)接口Runnable,Car實(shí)現(xiàn)它就能在地上跑,Train實(shí)現(xiàn)它也能在地上跑,飛機(jī)實(shí)現(xiàn)它也能在地上跑。就是說,如果它是交通工具,就一定能跑,但是一定要實(shí)現(xiàn)Runnable
接口。
示例代碼:
package testInterface;public interface Volant {/*public abstract final*/ int Fly_Hight =100;//默認(rèn)有public abstract final,寫不寫都一樣/*public abstract */ void fly() ; //默認(rèn)有public abstract 寫不寫都一樣
}interface Honest {void helpOther();
}class GoodMan implements Honest{ //GoodMan類實(shí)現(xiàn)接口Honest@Overridepublic void helpOther() {//類必須實(shí)現(xiàn)接品里的方法,也就是重寫接口里的抽象方法,增加{}System.out.println("扶老人過馬路!");}
}class BirdMan implements Volant{@Overridepublic void fly() {System.out.println("我在飛");}
}class Angel implements Volant,Honest {//類同時(shí)實(shí)現(xiàn)兩個(gè)接口的示例@Overridepublic void fly() {System.out.println("Angel.fly");}@Overridepublic void helpOther() {System.out.println("Angel.helpOther");}
}class Plane implements Volant{ //用這個(gè)類是為了更好說明,接口可以更好的抽象出飛這個(gè)特征并方便地給所有類使用//如果不用接口而用繼承,就不能這樣輕易做到。@Overridepublic void fly() {System.out.println("飛機(jī),在飛");}
}
package testInterface;public class Test {public static void main(String[] args) {Angel a = new Angel(); // a可以使用Angel實(shí)現(xiàn)的兩個(gè)接口里的方法以及常量a.fly();a.helpOther();System.out.println(Volant.Fly_Hight);Volant a2 = new Angel();//這里與前面講的多態(tài)一樣的道理a2.fly();//a2仍屬于Volant類型,只能使用它的fly方法a2.helpOther();//不能使用屬于Angelr的helpOther方法,如一定要使用需強(qiáng)制轉(zhuǎn)型Volant a3 = new Volant();//接口本身不能創(chuàng)建實(shí)例}
}