標籤:print 子類 強制類型轉換 調用 str 關鍵字 一個 dem xtend
多態的體現
1、方法的重載與重寫
2、對象的多態性
對象的多態性
向上轉型
程式會自動完成
父類 父類對象 = 子類執行個體
向下轉型
強制類型轉換(向下轉型必須要先向上轉型,再向下轉型)
子類 子類對象 = (子類)父類執行個體
Eg:A a=new B;B b=(B)a;
多態性的使用
一個簡單的例子:
class A { public void tell(){} }class B extends A { public void tellB(){}}class C extends A { public void tellC(){}}public class Demo { public static void main(String args[]){ say(new B()); say(new C()); } public void say(A a) { a.tell(); }}
說明:如果不使用多態,則需要重載say方法,有幾個對象調用就需要重載幾次。而這樣的寫的話,則會產生更過的冗餘代碼。Demo代碼如下:
public class Demo{
public static void main(String args[]){ say(new B()); say(new C()); } public void say(B b){ b.tell(); } public void say(C c){ c.tell(); }}
instanceof關鍵字
作用
判斷一個執行個體是否是一個類的對象,返回boolean
範例程式碼如下:
A a1 = new A();System.out.printeln(a1 instanceof A);System.out.printeln(a1 instanceof B);A a2 = new B();System.out.printeln(a2 instanceof A);System.out.printeln(a2 instanceof B);執行結果:truefalsetruetrue
Java物件導向---多態