java三大特性之多型

2021-09-21 18:34:54 字數 2057 閱讀 4608

多型

多型的概述

1、多型:事物的多種狀態,polymorphic

物件的多型性:同乙個物件,可能具有不同的名稱,同乙個物件,有不同的型別的引用指向它。本質:同乙個物體有不同的名稱和描述。

型別的多型性:同乙個型別,可能具有不同的子類實現。同乙個型別引用,有不同的物件實現。本質:同乙個名字和描述,可以在不同場景下有不同的真實實現。

2、多型的前提:

1、要有子父類的繼承(實現)關係

2、有方法的重寫

3、父類的引用指向子類的物件

**示例

class demo01_多型概述

}class animal

}class cat extends animal

}在多型中成員變數的訪問特點

1、編譯看左邊,執行看左邊

2、編譯的時候,要看【=】左邊的引用的型別中,是否有該變數的定義,如果有,就編譯成功,如果沒有,就編譯失敗。

3、執行的時候,要看【=】左邊的引用所屬型別中,真正如何給變數賦值的。獲取到的是引用父類的賦值結果。

**示例

class demo02_多型中成員變數訪問特點

}class animal

class cat extends animal

多型中成員方法的訪問特點

1、編譯看左邊,執行看右邊

2、編譯的時候,要看【=】左邊的引用所屬的型別中,是否有該方法的定義,如果有,就編譯成功,如果沒有,就編譯失敗。

3、執行的時候,要看【=】右邊的物件所屬的型別中,是如何實現這個方法的。最終執行的是子類重寫過的方法實現。

**示例

class demo03_多型中成員方法的訪問特點

}class animal

}class cat extends animal

public void catchmouse()
}

多型中靜態方法的訪問特點

1、編譯看左邊,執行看左邊

2、編譯的時候,要看【=】左邊的引用所屬的型別中,是否有該方法的定義,如果有,就編譯成功,如果沒有,就編譯失敗

3、執行的時候,要看【=】左邊的引用所屬的型別中,如何實現該方法的。最終執行的是引用所屬型別中該方法的實現。(方法屬於類,和父類的方法不屬於重寫關係)

4、靜態最終解釋:

靜態變數:儲存在類的位元組碼中的變數,被所有物件所共享,不隨著物件的變化而變化,都有相同的值,所以稱為靜態變數

靜態方法:只會根據引用所屬的父類,來決定執行的內容,執行內容,不會隨著子類的變化而變化,都是引用所屬的父類的方法實現,所以稱為靜態方法。

**示例

class demo04_多型中靜態成員的訪問特點

}class animal

}class cat extends animal

public void test() {}
}

超人案例

向上向下轉型

1、向上轉型:

使用子類的引用指向子類的物件(正常情況)

多型中,使用父類的引用指向子類的物件(向上轉型)

本質:縮小了物件本身的訪問範圍,減少了訪問的許可權(只能訪問父類中定義的內容)

2、向下轉型:

概念:讓指向子類物件的父類引用,【恢復】成子類的引用

格式:

子類型別 引用名稱 = (子類型別)父類型別的引用

superman sm = (superman)m;

本質:【恢復】子類型別原本就有的訪問範圍

**示例

class demo05_超人案例 class man class superman extends man

public void fly() }

多型在記憶體中的理解

public void makejuice(orange o) */

f.flow();

}

class fruit class orange extends fruit

}class banana extends fruit

}

Java基礎 三大特性之多型

多型的定義 指允許不同類的物件對同一訊息做出響應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。實現多型的技術稱為 動態繫結 dynamic binding 是指在執行期間判斷所引用物件的實際型別,根據其實際的型別呼叫其相應的方法。多型的作用 消除型別之間的耦合關係。多型三個必要條件 1...

三大特性之 多型

乙個行為不同的物件產生出不同的形態這就是多型,多型也是實現 復用的方式那麼為什麼呢?為什麼多型也是 復用的產物呢,因為多型的第乙個前提就是繼承,必須建立在繼承的基礎之上,才有多型之談,也就是說這個不同的物件也是有前提的,就是在繼承的條件之下的不同的類物件,簡單來說就是子類和基類 多型的第乙個條件就是...

理解java的三大特性之多型

物件導向的三大特性 封裝 繼承 多型。封裝和繼承幾乎都是為多型而準備的。這是我們最後乙個概念,也是最重要的知識點。一 概念 多型的定義 指允許不同類的物件對同一訊息做出響應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。傳送訊息就是函式呼叫 實現多型的技術稱為 動態繫結 dynamic ...