Java學習9 多型

2021-08-09 13:04:30 字數 2835 閱讀 4799

實物存在的多種體現形態。

父類的引用指向了自己的子類物件,即父類的引用也可以接收自己的子類物件。

必須是類與類之間有關係,要麼繼承,要麼實現;

通常還有乙個前提:存在覆蓋。

提高了程式的擴充套件性。

只能使用父類的應用訪問父類中的成員。

/*

吃魚捉老鼠

吃骨頭*/abstract class animal

class cat extends animal

void catchmouse()

}class dog extends animal

}class pig extends animal

}public

class

demo

public

static

void

function(animal a)

}}

abstract class person

abstract

void work();

}class student extends person

}class worker extends person

}class doperson

}public

class

demo

}

多型中成員函式的特點

在編譯期間:參閱引用型變數所屬類中是否有呼叫的方法,如果有編譯通過,如果沒有編譯失敗;

在執行期間:參閱物件所屬的類中是否有呼叫的方法。

簡單總結來說,成員函式在多型呼叫時,編譯看左邊,執行看右邊。

注意:這裡的成員函式是非靜態成員函式,如果是靜態成員函式的話,執行左邊。多型中成員變數的特點(包含靜態)

無論編譯和執行,都參考左邊(引用型變數所屬的類)。

多型中成員函式的特點

無論編譯和執行,都參考左邊。

/*

zi method1

5 15

*/class fu

}class zi extends fu

void method2()

}public

class

demo

}

/*

mainboard open!

mainboard close!

netcard open!

netcard close!

soundcard open!

soundcard close!

*/inte***ce pci

class mainboard

void close()

void usepci(pci pci)//多型

}}class netcard implements pci//介面實現

public

void

close()

}class soundcard implements pci

public

void

close()

}public

class

demo

}

是所有物件的直接或者間接父類,該類中定義的是所有物件都具備的功能。

object類中已經提供了對物件是否相同的比較方法,如果自定義類中也有比較相同的功能,沒有必要重新定義,只要沿襲父類中的功能,建立自己特有的比較內容即可,這就是覆蓋。

class person//extends object

public

boolean

equals(object obj)//覆蓋

else

return

false;

}}public

class

demo

/*        

person@@135fbaa4

person@135fbaa4

*/public

class

demo

}class person

}

//a

public

class

demo

}class student extends person

}class person

public

void

printperson()

}//b

public

class

demo

}class student extends person

}class person

public

void

printperson() }a:

/* person

student

*/b:

/* person

person

*/

public

class

demo

}class a

public

void

seti(int i)

}class b extends a

public

void

seti(int i) }/*

i from a is 40

i from a is 60

i from b is 60

*/

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.建立什麼型別,就可以強轉成什麼型別 將父類轉成...