多型 抽象類 介面

2021-10-08 19:39:27 字數 1401 閱讀 2406

同一物件,在不同時刻表現出來的不同形態

多型的前提和實現:

有繼承/實現關係

有方法重寫

有父類引用指向子類物件

多型中成員訪問特點:

成員變數:編譯看左邊,執行看左邊

成員方法:便宜看左邊,執行看右邊

為什麼成員方法和成員變數的訪問不一樣呢?

因為成員方法有重寫,而成員變數沒有

多型的好處和弊端:

好處:提高了程式的擴充套件性

具體體現:定義方法的時候,使用父類作為引數,將來在使用的時候,使用具體的子型別參與操作

多型的弊端:不能使用子類的特有功能

多型中的轉型:

向上轉型:

從子到父

父類引用指向子類物件

animal a=new cat();

向下轉型:

從父到子

父類引用使用子類物件

animal a=new cat();

cat c=(cat) a;

乙個沒有方法體的方法該定義為抽象方法,而類中如果有抽象方法,則類必須定義為抽象類

抽象類的特點:

1.抽象類和抽象方法必須使用abstract 關鍵字修飾

public abstract class 類名{}

public abstract void eat();

2.抽象類不一定是抽象方法,有抽象方法的類一定是抽象類

3.抽象類不能被例項化。但可以參照多型的方式,通過子類物件例項化

4.抽象類的子類,要麼重寫抽象類中所有的抽象方法,要麼是抽象類

抽象類成員特點:

成員變數:可以是變數,也可以是常量

構造方法:有構造方法,但是不能例項化

構造方法的作用:用於子類訪問父類資料的初始化

成員方法:可以有抽象方法:限定子類必須完成某些動作

也可以有非抽象方法,提高了**的復用性

介面的成員特點:

類和介面的關係:

實現關係,可以單實現,也可以多實現,還可以在繼承乙個類的同時實現多個介面

介面和介面的關係:繼承關係,可以單繼承,也可以多繼承

抽象類和介面的區別:

抽象類是對事物的抽象,而介面是對行為的抽象

多型 抽象類 介面

抽象類介面 什麼是多型?同乙個物件,在不同時刻表現出來的不同形態 1.有繼承 實現的前提 2.有方法的重寫 3.有父類引用指向子類物件 例 animal a new cat 成員變數訪問 父類中有的屬性,才能正常編譯 編譯看左邊 如子類也有相同屬性,訪問執行出來的是父類中的屬性值 成員方法訪問 父類...

多型 抽象類 介面

1.多型的使用方式 父類引用指向子類物件 同一型別的物件引用指向了不同型別的子類物件,具體方法的實現不同 呼叫的方法需要是子類和父類都有的,但是執行的是子類的,就是執行醫生類覆蓋的 重寫的 eat方法 也就是所謂的 編譯看左邊,執行看右邊!能夠呼叫什麼方法,取決於引用的型別,而方法中具體怎麼執行,要...

多型,抽象方法,抽象類,介面

向上轉型 使用父類型別的變數接收子類型別的物件 多型使用的方法和屬性都是子類和父類共有的內容,物件能夠呼叫的屬性和方法全部 於子類中的內容。子類獨有的方法和屬性是不能使用的 向下轉型 如果向上轉型後,需要呼叫子類獨有的方法和屬性時,就需要向下轉型,必須是先有向上轉型,才會有向下轉型。一般用insta...