實物存在的多種體現形態。
父類的引用指向了自己的子類物件,即父類的引用也可以接收自己的子類物件。
必須是類與類之間有關係,要麼繼承,要麼實現;
通常還有乙個前提:存在覆蓋。
提高了程式的擴充套件性。
只能使用父類的應用訪問父類中的成員。
/*
吃魚捉老鼠
吃骨頭*/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.建立什麼型別,就可以強轉成什麼型別 將父類轉成...