接口-----java
生活随笔
收集整理的這篇文章主要介紹了
接口-----java
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
接口就是規(guī)范,定義的是一組規(guī)則,體現(xiàn)了現(xiàn)實(shí)世界中“如果你是...則必須你能....”的思想。
如果你是天使,則必須能飛。如果你是汽車,則必須能跑。接口的本質(zhì)就是契約,就像我們?nèi)碎g
的法律一樣,大家都要遵守。接口定義說(shuō)明:1、訪問(wèn)控制符:只能是public或者默認(rèn)。2、接口名:和類名采用相同命名機(jī)制。3、extends:接口可以多繼承。4、常量:接口中的屬性只能是常量,總是:public static final 修飾,不寫也是。5、方法:接口中的方法只能是:public abstract。不寫也是。要點(diǎn):1、子類通過(guò)implements來(lái)實(shí)現(xiàn)接口中的規(guī)范。2、接口不能創(chuàng)建實(shí)例,但是可用于聲明引用變量類型。3、一個(gè)類實(shí)現(xiàn)了接口,必須實(shí)現(xiàn)接口中所有的方法,并且這些方法只能是public的4、JDK1.8(不含8)之前,接口中只能包含靜態(tài)常量,抽象方法,不能有普遍性,構(gòu)造方法,普通方法。5、JDK1.8(含8)后,接口中包含普通的靜態(tài)方法,默認(rèn)方法
?驗(yàn)證:
/*** 使用接口,定義一個(gè)接口Flyable,讓飛機(jī)、鳥(niǎo)、超人、導(dǎo)彈都實(shí)現(xiàn)該接口。接口表達(dá)的是has—a的關(guān)系* 而繼承表達(dá)的是is—a的關(guān)系,飛機(jī)、鳥(niǎo)、超人、導(dǎo)彈不是一種事物,所以使用接口來(lái)實(shí)現(xiàn)*/ public interface Flyable {//接口中只有常量,沒(méi)有變量,常量都是全局靜態(tài)常量public static final int num = 5;//接口的方法自動(dòng)采用public abstract修飾,所有方法都是全局抽象方法public abstract void fly(); } public class Plane implements Flyable{@Overridepublic void fly() {System.out.println("飛機(jī)在飛......");} } public class Animal { } public class Bird extends Animal implements Flyable{@Overridepublic void fly() {System.out.println("鳥(niǎo)在飛.....");} } public class SuperMan implements Flyable{@Overridepublic void fly() {System.out.println("超人在飛......");} } public class Test {public static void main(String[] args) {Flyable plane = new Plane();showFly(plane);Bird bird = new Bird();showFly(bird);SuperMan sm = new SuperMan();showFly(sm);Flyable bird2 = new Plane();bird2.fly();}public static void showFly(Flyable fly){fly.fly();} }?運(yùn)行結(jié)果:
?
總結(jié) 一:接口的組成1、接口和數(shù)組、類、抽象類是同一層次的概念。2、成員變量:接口中所有的變量都使用public static final修飾,都是全局靜態(tài)常量3、成員方法:接口中所有的方法都使用public abstract 修飾,都是全局抽象方法。4、構(gòu)造方法:接口不能new,也沒(méi)有構(gòu)造方法5、接口做方法的形參,實(shí)參可以是該接口的所有實(shí)現(xiàn)類。總結(jié) 二:接口和多繼承C++ 多繼承優(yōu)點(diǎn):可以從多個(gè)父類繼承更多的功能 缺點(diǎn):不安全Java 單繼承優(yōu)點(diǎn):安全 缺點(diǎn):功能受限 解決方案:采用接口,既安全,功能又強(qiáng)大,接口變相的使java實(shí)現(xiàn)了c++的多繼承,又沒(méi)有c++多繼承 的不安全性。?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的接口-----java的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库错误 ERROR 1366 (HY
- 下一篇: 使用try-catch-finally处