Java學習 多型

2021-09-03 09:53:15 字數 1112 閱讀 7888

多型:就是指一種事物,在不同時刻,所表現出來的不同狀態。

在我們編寫程式時,經常會發現乙個父類的許多子類繼承了父類的功能,但不同的子類所體現出的功能卻不盡相同,例如經典的貓狗案例。

多型的前提:

1.要有繼承

2.要有方法重寫,不重寫也可以,但是就失去了多型的意義

3.父類引用指向子類物件

我們可以通過乙個程式來做以了解

public class animal 

public void sleep()

}

public class cat extends animal

@override

public void sleep()

public void catchmouse()

}

public class dog extends animal 

@override

public void sleep()

public void lookdoor()

}

public class function 

}

public class test 

}

湯姆     3

貓吃魚貓白天睡覺

抓老鼠---------------------------------------

旺財 4

狗吃肉狗晚上睡覺

狗看門

在這個程式中我們可以看到,cat類和dog類都有自己的特有方法,而物件的引用卻是animal,父類肯定不能直接呼叫子類的特有功能,這也是多型的弊端所在,如果要呼叫這兩個方法,就必須按照程式所示,進行向下轉型。

多型的成員訪問特點:

多型形式去訪問成員變數:編譯看左邊,執行也看左邊

多型形式去訪問成員方法:編譯看左邊,執行看右邊

多型形式去訪問靜態方法:編譯看左邊,執行也看左邊

多型形式的構造方法:建立子類物件,同樣會先訪問父類的構造方法

私有化構造,外界不能借助構造方法來建立物件

Java學習 java 多型

多型 一種事物的多種形態 多型的規則 前提 1.類與類之間要建立關係,建立繼承的關係 2.必須要有方法的重寫 3.父類的指標 引用 指向子類的物件 空間 public static void main string args class animal class cat extends animal...

JAVA學習 多型

需求 實現多型 功能演化,先要求,能繼承父類,實現,功能。貓吃魚,狗吃骨頭,豬吃飼料。貓狗豬都有自己的特有屬性,他們都屬於動物。第124行的 問題。沒有解決。abstract class animal class cat extends animal public void catchmouse c...

Java學習 多型

用方法重寫和方法過載來實現 方法重寫 要求子類的訪問修飾符要大於等於父類的訪問修飾符 宣告父類,建立子類 父類裝載子類 父類的引用指向子類的例項 1.宣告誰的引用,就呼叫誰的屬性和方法 不管new的是誰 2建立的 new 是誰的空間,就實現誰的功能 3.建立什麼型別,就可以強轉成什麼型別 將父類轉成...