當前位置:成語大全網 - 漢語詞典 - java多態性概述?

java多態性概述?

父類引用指向子類對象的概念是Java比較的基礎。Java是壹種面向對象的編程語言,編程中經常用到調用對象。北大青鳥詳細解釋這個概念。

例如,父類動物,亞綱貓,狗。其中,Animal可以是壹個類,也可以是壹個接口,Cat和Dog是繼承或實現Animal的子類。

animalanimal = newCat();

也就是說,聲明了父類,但它實際上指向了子類的壹個對象。

那這樣用有什麽好處,為什麽這樣用?可以用這幾個關鍵詞來概括:多態、動態鏈接、向上轉化。有人說這是面向接口編程,可以減少程序。

的耦合,即調用者不必關心調用的是哪個對象,只需要編程接口,被調用者對調用者完全透明。讓妳更關註父類能做什麽,還有

不管子類是怎麽做的,妳都可以隨時替換壹個子類,也就是說,妳可以隨時替換壹個特定的實現,而不用修改其他的。

未來將設計模式(如工廠模式、代理模式)與反射機制相結合,可能會有更深的理解。

下面介紹Java的多態性及其動態鏈接,並向上轉化:

面向對象的三個特征:封裝、繼承和多態;

封裝隱藏了類的內部實現機制,可以在不影響用戶的情況下修改類的內部結構,保護數據。

繼承就是重用父類的代碼,子類繼承父類,擁有父類的成員。

方法的重寫、重載和動態連接構成了多態。Java之所以引入多態的概念,原因之壹是它和C++在類的繼承上不同,c++允許多重繼承,這才真正賦予了它

它帶來了非常強大的功能,但是復雜的繼承關系也給C++開發者帶來了更多的麻煩。為了規避風險,Java只允許單壹繼承,派生類和基類之間有壹個IS-A關系。

(即“貓”是“動物”)。雖然這樣保證了繼承關系的簡單性,但是在功能上勢必有很大的局限性,所以Java引入了多態性的概念來彌補這壹點。

此外,抽象類和接口也是解決單壹繼承限制的重要手段。同時,多態性也是面向對象編程的本質。

要理解多態性,首先要知道“向上轉化”

我定義了壹個子類Cat,繼承了Animal類,所以後者是前者是父類。我可以通過

catc = newCat();

實例化壹個貓對象,不難理解。但是當我這樣定義的時候:

animala = newCat();

這是什麽意思?

很簡單,這意味著我定義了壹個動物類型的引用,指向新創建的貓類型的對象。因為Cat是從它的父類Animal繼承來的,Animal類型的引用可以指向。

Cat類型的對象。這就是“向上轉化”。