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