java學習筆記之 多型

2021-07-14 00:10:57 字數 1123 閱讀 4425



父類引用指向子類物件時,注意以下幾點:

1、例項化乙個沒有名字的子類物件,然後向上轉型為父類的父類的引用,先去呼叫子類重寫的方法,子類沒有重寫就再去呼叫父類的方法。

2、只能呼叫父類中定義過的方法和變數(父類中沒有定義過呼叫的時候要報錯)

3、專屬於子類的成員變數,在子類方法中被訪問時,這時候通過父類引用還是可以呼叫子類重寫的的方法

4、覆蓋private方法雖然編譯器不會報錯但是也不會按照我們所期望的執行

5、覆蓋變數後,呼叫的成員變數與我們所期望的不一樣

6、靜態方法的行為不具有多型性,因為靜態方法是與類,而非是對單個物件相關聯的。

class son extends super

void f()

static void g()

}public class super

void f(int i)

static void g()

public static void main(string args)

}

執行結果:

子類專屬的變數用在子類重寫的方法中,利用父類引用可以呼叫該方法

父類方法訪問許可權為private時,呼叫父類方法

覆蓋變數結果,fo=1

父類靜態方法

多型存在的條件:

一、要有繼承;

二、要有重寫;注意不是過載

三、父類引用指向子類物件。例項化乙個沒有名字的子類物件,然後向上轉型為父類的父類的引用

只能呼叫父類中定義過的方法和變數(父類中沒有定義過呼叫的時候要報錯)

class a 

public string show(a obj)

}class b extends a

public string show(a obj)

}class c extends b

class d extends b

public class t1

}

執行結果:

b and a

b and a

a and d

b and b

b and b

a and d

JAVA學習筆記之多型

型別轉換分為自動型別轉換和強制型別轉換 1.自動型別轉換 向上型別轉換 父類 小型別 子類 大型別 不存在風險 animal animal new animal dog dog new dog animal dog 自動型別轉換,不存在風險2.強制型別轉換 向下型別轉換 子類 大型別 父類 小型別 ...

java學習之多型

向上轉型是不需要進行強制型別轉換的,但是向上轉型會丟失精度。與向上轉型對應的乙個概念就是 向下轉型 所謂向下轉型,也就是說父類的物件可以轉換為子類物件,但是需要注意的是,這時則必須要進行強制的型別轉換。類似於人壓彈簧 一 向上轉型可以自動完成 二 向下轉型必須進行強制型別轉換。可以用instance...

Java學習之多型

原帖 多型 晚繫結。不要把函式過載理解為多型。因為多型是一種執行期的行為,不是編譯期的行為。多型 父型別的引用可以指向子型別的物件。比如 parent p new child 當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤 如果有,再去呼叫子類的該同名方法。注意此處,靜態...