JavaSe 2 物件導向(繼承 封裝 多型)

2021-08-07 07:53:48 字數 1550 閱讀 7693

實現:訪問控制符:

同乙個包下的類可以自由訪問,不用包的類要麼帶包名.類名,要麼import包。import的*號只能代表類。

so,如果兩個包都含有名字一樣的類,可以使用包名.類名的方法解決該問題。

某個方法中訪問a變數,查詢a的順序:當前方法–>當前類–>父類–>父父類。。。

建立子類時,會為子類和他的所有父類的例項變數都分配記憶體。(即使父類的例項變數被覆蓋,因為父類例項變數的被覆蓋只是隱藏,仍然可以呼叫)

類建立乙個物件,首先呼叫object類的構造器,然後依次往下呼叫父類構造器,最後呼叫自己構造器。

子類無法繼承父類構造器,但會預設呼叫父類的構造器,但是如果沒有預設的父類構造器,子類必須要顯式呼叫(super)父類的構造器,而且必須是在子類構造器中做的第一件事(第一行**)。

子類建立物件時從頂級父類構造器執行到自己的構造器。

protected修飾的變數或方法,其子類可以呼叫。

子類可以覆蓋父類的方法(public的)。如果被覆蓋了還想在子類呼叫父類方法,則可以super.方法名。系統建立子類的物件時會為他繼承的所有父類的變數分配記憶體。

最後:

1、子類擁有父類非private的屬性和方法。

2、子類可以擁有自己屬性和方法,即子類可以對父類進行擴充套件。

3、子類可以用自己的方式實現父類的方法。

設計父類:

1、盡量所有屬性設為private,體現封裝性。

2、父類需要被外部呼叫的方法設為private,不希望被子類重寫就設為final,希望被重寫但是不希望被外部訪問設為protected。

class

father

public void ourmethod()

}class

sonextends

father

public void ourmethod()

}public static void main(string args)

編譯時型別是father,執行時型別是son,

1、要有繼承關係

2、子類要重寫父類的方法

3、父類引用指向子類物件, 向上轉型

class animal

public

static

void

sleep()

public

void

run()

}catclass cat extends animal

public

static

void

sleep()

public

void

catchmouse()

}demo_test1class demo_test1 }

from:

向上轉型和向下轉型:父類引用為子類的例項,稱為向上轉型,可以成功,如果子類引用為父類變數,則為向下轉型,需要強轉。

強轉的前提:引用必須屬於這個類或這個類的子類,可用instanceof運算子判斷,返回true或false。

JavaSE階段1 物件導向封裝

封裝 繼承 多型 封裝 隱藏物件的屬性和實現細節,僅對外提供介面 好處 1.將變化隔離 2.便於使用 3.提高重用性 4.提高安全性 1.呼叫同名的變數資訊 成員變數 this.變數名 2.呼叫同類中其它函式資訊,這時候this可以省略不寫 3.在本類中,通過構造函式呼叫其它建構函式 注意 1.函式...

物件導向(封裝 繼承)

1.類的訪問修飾符有public private internal protected。其中pubulc 公共的,只要引用了命名空間,就可以隨意進行訪問 private 私有的,只有當前類內部才可以訪問 internal 內部的,當前程式集內可以訪問,程式集就是命名空間,此修飾符是預設的 prote...

物件導向 封裝 繼承

建構函式 建構函式 建立乙個類的函式 每乙個類都有建構函式,訪問修飾符必須是public的,並且不需要寫任何返回值,方法名與類名一致 自己寫的類 使用者自定義型別 如果要使用自定義型別產生出來的 物件 必須有乙個例項化的過程 例項化格式 型別名 ss new 建構函式 訪問修飾符 4個 public...