接口和多態(tài)的使用

一.接口的使用

接口(interface):用于處理繼承單一的局限性;接口中的所有方法都是抽象方法;接口與了類的關(guān)系是實現(xiàn)(implements).

格式:interface接口名{

public static final 變量名=1;//必須初始化且不可改變。

* public abstract void 方法名();

* //接口內(nèi)的方法都是抽象方法,無方法體{},不能實例化,若想實例化必須創(chuàng)建子類去實現(xiàn)。

}

接口的成員特點:只能是抽象方法和常量;接口不能創(chuàng)建對象(實例化);

關(guān)系:類與類:繼承(單一繼承,多層繼承)

?類與接口:實現(xiàn),多實現(xiàn)

接口與接口:繼承,多繼承

interface App {//接口

public static final int i=1;

? ? public abstract void app();

}

interface Bpp extends App{

public abstract void bpp();

}

class TestApp implements Bpp{//接口的實現(xiàn)

public? void app(){

System.out.println("實現(xiàn)App接口"+i);

}

public? void bpp(){

System.out.println("實現(xiàn)Bpp接口"+i);

}

}

public class TestAp{

public static void main(String[] args) {//測試類

TestApp t=new TestApp();

t.app();//實現(xiàn)App接口1

t.bpp();//實現(xiàn)Bpp接口1

}

}

2.多態(tài)的使用

定義:父類的引用變量指向子類對象

格式:父類名 ?變量=new 子類名();

成員變量:父類的成員變量在子類中被重寫時,調(diào)用成員變量時調(diào)用的是子類重寫的成員變量

? ? ? ? ? ? ? ? ? 若是子類中特有成員變量,變量名.成員變量;出錯了; ? ? ?必須強制轉(zhuǎn)換為子類才能被調(diào)用變量名 ??((子類) 變量名).成員變量;

成員方法:父類的成員方法在子類中被重寫時,調(diào)用成員變量時調(diào)用的是子類重寫的成員方法

? ? ? ? ? ? ? ? ?若調(diào)用子類中特有成員方法,變量名.成員方法();出錯了; ? ? ?必須強制轉(zhuǎn)換為子類才能被調(diào)用成員方法 ? ((子類) 父類的引用).成員方法();

特點:成員變量:編譯時看左邊,運行時也看左邊。(編譯和運行時都看左邊(即看父類成員))

? ? ? ? ? ?成員方法:編譯時看左邊(父類成員),運行時看右邊(子類成員)

? ? ? ? ? ?靜態(tài)方法:編譯時看左邊,運行時也看左邊。

總結(jié):編譯時都看左邊,運行時成員方法看右邊,其他(成員方法和靜態(tài)方法)都看左邊。

缺點: ? ? 1.無法直接訪問子類特特有成員

?優(yōu)點: ? ?1.可以提高可維護性

? ? ? ? ? ? ? ? ?2.提高代碼的擴展性


class Animai {//父類

Stringname;

void eat() {

System.out.println("動物吃飯");

}

}

class Dog extends Animai{//子類

void eat() {

System.out.println("狗吃飯");//若在子類中重寫了父類方法,調(diào)用父類方法是調(diào)用的是被子類重寫的方法

}

void slepp() {()

System.out.println("狗睡覺");

}

}

public class AnimalTest {

//多態(tài):1.必須要有繼承或者實現(xiàn)類的關(guān)系

? ? ? ? ? ? 2. 方法的重寫

? ? ? ? ? ? 3.父類的引用指向子類的對象

? ? public static void main(String[] args) {

Animai a =new Dog();

a.eat();//向上轉(zhuǎn)型自動 ? ? ?動物吃飯

? ? ? ? ((Dog) a).slepp();//向下轉(zhuǎn)型強制 ? 狗吃飯

? ? }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容