1. 程式人生 > >【java面向物件】在程式碼中看3大特性

【java面向物件】在程式碼中看3大特性

我們知道,面向物件的3大特性:封裝、繼承、多型很重要,那今天我們就來談談它們。

封裝

說起封裝,我們就能想到private,被private修飾的成員,在本類中能夠被訪問,但外類就不能訪問了。這也就是對成員,即成員變數和成員方法進行了封裝。 封裝的好處是保障了成員的安全性。 那如果外類想訪問怎麼辦呢?可以使用get/set方法或構造方法。 具體可看小編的這篇部落格——【java面向物件】類的定義與呼叫示例(https://blog.csdn.net/qsbbl/article/details/82767995 ) 其中,從原始的定義和呼叫到封裝後的定義和呼叫,就是從無封裝到有封裝的過程。裡面說的很詳細,小編在這就不再贅述了。

繼承

運用extends這個關鍵字,就能讓一個類向另一個類叫爸爸。 ……開個玩笑。 關於繼承,我們從3個方面來說:成員變數、成員方法、建構函式

  • 1、繼承在成員變數中的體現——就近原則

在這裡插入圖片描述 在這個demo中,其實Father類中也有一句賦值age的程式碼:

public int age=45;

但是,不管是父類中的45,還是成員變數中的20,都比不過區域性變數中的10,因為它離輸出最近。 進一步說,那如果想輸出45或20怎麼辦? 答:可以用super或this關鍵字,具體可看此部落格:https://blog.csdn.net/qsbbl/article/details/82774971

  • 2、繼承在成員方法中的體現——就近原則

子類可以重寫父類的方法,可用@Override註解。 子類如果在重寫後,還想使用父類的同名方法,可以使用super關鍵字。

super.say();

備註: (1)父類私有的方法不能被重寫,即被private修飾的方法 (2)重寫時,子類的訪問許可權不能更低,即當父類中的方法修飾符為預設的時,子類修飾符不能為private。(修飾符許可權由高到低為:pubic、預設、private) (3)如果父類是個抽象類,除非子類也是個抽象類,否則必須重寫父類中的抽象方法;如果是非抽象方法,可重寫可不重寫。

  • 3、繼承在構造方法中的體現

子類的所有構造方法,包括無參和有參,在執行前都會先執行父類的無參構造方法。

多型