(資料圖片)
同一個類調用同一個方法會產生不同的影響/結果 這就是多態
public class Pet{public void eat(){System.out.println("Pet eat...")}}class Dog extends Pet{public void eat(){System.out.pringln("Dog eat...")}public void run(){System.out.pringln("Dog run...子類特有的方法")}}class Cat extends Pet{public void eat(){System.out.println("Cat eat...")}public void swim(){System.out.println("Cat swim...子類特有的方法")}}
限制對子類特有方法的訪問
Pet p=new Dog()//向上轉型是子類轉父類 自動提升不需要強轉p.eat()p.run() //報錯 只能訪問到父類有的方法 編譯時看左邊類型 運行時看右邊類型
使用子類特有的方法
Pet p=new Cat()p=(Cat)p //向下轉型是父類轉子類 需要強制轉換但只能轉到運行期類型(這里是Cat)
標簽: