Java學習 物件導向之多型

2021-09-19 04:21:00 字數 1499 閱讀 3369

多型的概念:多型指的是某乙個事物,在不同時刻表現出來的不同狀態。在物件導向語言當中,其表現的是介面的不同實現方式。也就是說允許父類的引用指向子類。

舉個例子:

dog  dog  =  new  dog();

animal an = new dog();

我們設計乙個dog類,將其物件new出來,用它本身的引用去指向。當然我們也可以用其父類animal去指向new出來的dog物件。也就是說,狗是動物的一種,它就可以用animal的引用去指向dog物件。

多型的前提

1.要有繼承關係:多型使用父類的引用指向子類的物件,所以繼承是第乙個條件

2.要有父類引用指向子類物件:父類 f = new 子類();

3.要有方法重寫:這個其實沒有也是可以的,但如果沒有方法重寫就沒有意義了

多型的優點與缺點

優點:1.提高了**的維護性:由繼承來保證的

2.提高了**的擴充套件性:由多型保證,多型的意義就是在於提高**的擴充套件性

缺點:1.不能使用子類特有的功能

如何解決:向下轉型,看如下**:

public class test 

}//父類

class fu

}//子類

class zi extends fu

//子類特有的方法fly

public void fly()

}

多型中成員的訪問特點

1.成員變數

編譯看左邊,執行看左邊。

public class test 

}class fu

class zi extends fu

//輸出結果:10

2.構造方法

建立子類物件的時候,會訪問父類的構造方法,對父類的資料進行初始化。

public class test 

}class fu

}class zi extends fu

} /*

輸出結果:

父類構造方法

子類構造方法

*/

3.成員方法

編譯看左邊,執行看右邊。

public class test 

}class fu

}class zi extends fu}/*

輸出結果:子類吃飯

*/

4.靜態方法

編譯看左邊,執行看左邊。

(靜態和類相關,算不上重寫,所以,訪問還是左邊的)

public class test 

}class fu

}class zi extends fu}/*

輸出結果:父類吃飯

*/

物件導向之多型

多型即事物存在的多種形態 要有繼承 要有方法重寫 要有父類引用指向子類物件 1,多型中的成員訪問特點之成員變數 編譯看左邊 父類 執行看左邊 父類 2,多型中的成員訪問特點之成員方法 編譯看左邊 父類 執行看右邊 子類 3,多型中的成員訪問特點之靜態成員方法 編譯看左邊 父類 執行看左邊 父類 總結...

物件導向之多型

多型指的是一類事物有多種形態,多型性是指在不考慮例項型別的情況下使用例項 class animals def run self print running class dog animals def run self print dog is running class pig animals de...

物件導向之多型

多型指的是一類事物有多種形態 動物有多種形態 人,狗,豬 import abc class animal metaclass abc.abcmeta 同一類事物 動物 abc.abstractmethod deftalk self pass class people animal 動物的形態之一 人...