三大特性 封裝 繼承 多型

2021-10-03 22:00:19 字數 1861 閱讀 3553

物件導向的三大特性:封裝,繼承,多型

封裝: 物件的便捷對物件的內部起到保護作用:

資料隱藏(四種訪問修飾符)

public公開 可以繼承

default本類和同包可以訪問 如果乙個屬性既不是public也不是private 那就預設是default 同包的子類可以繼承

private私有 只能在本類內部訪問 無法突破邊界 不能繼承

protected受保護的 本類+同包+不同包的子類都可以訪問 可以繼承

private protected 只能修飾屬性、方法、構造方法

default public 可以修飾屬性、方法、構造方法、類

構造方法不能繼承!

方法的覆蓋

子類用特殊的方法實現替換掉父類繼承給它的一般的方法實現

(也就是說計算機在子類中找到了需要呼叫的方法,就不用去呼叫父類的方法了)

父類的靜態方法(static)不能被子類覆蓋

注意:子類替換父類的方法的時候,不能改變父類構造方法的返回值型別,方法名,參數列,訪問修飾符相同或更寬

屬性私有 提供公開的set***/get***用來訪問屬性

字串名.length() 字串長度

方法私有 只給自己呼叫

方法公開 宣告公開(你只需要知道能做什麼) 實現隱藏(不需要知道怎麼實現的)

實現的改變對架構的影響最小

《左移一位 乘2 >>右移一位 除2

繼承:

父類:子類的共性抽象出來的 比如動物是貓狗雞鴨魚鳥等的父類

class b{}

class a extends b{} a是b的子類

只有子類能夠訪問到的父類的屬性和方法,才算是子類繼承的

繼承的作用:

1.使**可重用,大大減少了寫重複**的次數

2.增強程式的可擴充套件性

3.增強程式的可維護性

4.使人們能夠更加清晰的看清楚各個物件之間的聯絡

物件的構造過程

1.分配空間 本類+父類 一併分配

2.遞迴的構造父類物件()

3.初始化本類屬性

4.呼叫本類構造方法

例如a<–b<–c

建立c物件:

如果第一次(建立物件 || 訪問類的靜態成員 || 載入子類)需要類載入(只會執行一次)

(1)載入父類a 執行a的靜態**塊

(2)載入父類b 執行b的靜態**塊

(3)載入子類c 執行c的靜態**塊

1.分配空間

2.初始化a屬性和a的初始**塊(動態**塊)

3.呼叫a的構造方法

4.初始化b屬性和b的初始**塊(動態**塊)

5.呼叫b的構造方法

6.初始化c屬性和c的出事**塊(動態**塊)

7.呼叫c的構造方法

super

1.引用:父類物件

訪問父類被遮蓋的屬性或呼叫被覆蓋的方法

2.用在構造方法中 指定呼叫父類的哪乙個構造方法

必須是構造方法中的第乙個語句

如果乙個構造方法的第一句話,不是this(…),也不是super(…),系統預設新增super();

常常用來把構造引數傳給父類,去設定父類的屬性!

三大特性 封裝,繼承,多型

重寫方法的規則 1 引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是過載。2 返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載。3 訪問修飾符的限制一定要大於被重寫方法的訪問修飾符 public protected default private 4 重寫方法一定...

Java三大特性 封裝,繼承,多型

封裝的作用 1 封裝能夠減少耦合 2 類內部結構可以自由修改 3 對成員變數進行更精確的控制 例項 public class person在上面這段 中,把屬性定義成private私有的,只能在本類中訪問,其他類訪問不了。public class person public string getna...

java三大特性 封裝,繼承,多型

使用封裝有三大好處 1 良好的封裝能夠減少耦合。2 類內部的結構可以自由修改。3 可以對成員進行更精確的控制。4 隱藏資訊,實現細節。5 封裝我們也能夠對物件的出口做出很好的控制,訪問入口做一些控制 如對實體類進行屬性封裝方法 setter 和getter 同時在使用繼承時需要記住三句話 1 子類擁...