多型:指的是一種事物,在不同時刻所表現出來的不同狀態
貓是型別,貓也是一種動物
多型的前提:1.要有繼承關係
2.要有方法重寫,當然不重寫也可以,但是沒有太大意義
3. 多型 就是 父類引用指向子類物件
public class mytest
class animal
}class dog extends animal
}
zi zi = new zi();
system.out.println(zi.num);
多型的形式訪問成員變數的特點
編譯看左邊,執行也看左邊
fu fu=new zi();//父類引用,指向子類物件
system.out.println(fu.num);
多型的形式訪問成員方法的特點,編譯看左邊,執行看右邊
public class mytest3
}class fu
public static void test2()
}class zi extends fu
public void test()
public static void test2()
}
方法重寫:當子類**現了和父類一模一樣的方法時(方法名,引數列表,返回值型別都一樣),那麼這個時候就會發生方法重寫,我們在呼叫方法時,就會以子類重寫過後的方法為準
為什麼要有方法重寫,子類有的時候對父類的方法實現並不滿意,他並不想要原封不動的繼承下來,而是想要自己實現功能邏輯,或者說,他想要在父類的方法基礎之上擴充套件一些自己的功能,那麼這個時候他可以使用方法重寫。
public class mytest
}class fu
}class zi extends fu
public void show()
}
方法重寫和多型
我們可以發現在繼承後,子類都缺失了自己特有的方法,只有從父類繼承下來的方法,所以為了即擁有從父類繼承的屬性和方法外 遺產 自己也需要有自己的方法 自己的資產 聯想到顯示中的例子 新的帝王繼承王位,覺得制度不好,為了勵精圖治一般會重新設定新的制度。子類根據需求對從父類繼承的方法進行重新編寫。編寫時,可...
方法重寫與多型
方法的重寫 子父類出現了一模一樣的方法 注意 返回值型別可以是子父類 子類根據需求對從父類繼承的方法進行重新編寫 重寫時,可以用super.方法的方式來保留父類的方法 構造方法不能被重寫 在繼承的情況下,子類的方法滿足以下條件 1 方法名相同 2 引數列表相同 3 返回值型別相同,或者是父類返回值型...
方法重寫與多型
當從父類繼承的方法不能滿足子類的需要時,可以在子類中對這一方法進行重寫 覆蓋 以符合需求。重寫方法和被重寫的方法必須具有相同的方法名 重寫方法和被重寫方法引數列表相同 重寫方法的返回值型別和父類的返回值型別是同類或者是子類 重寫方法不能縮小被重寫方法的訪問許可權,public class depar...