繼承是多態的基礎,是指對象的多種形態 1.引用的多態 (1)父類的引用可以指向本類的對象 (2)父類的引用可以指向子類的對象 注意:子類的引用不能指向父類的對象 2.方法的多態 (1)創建本類對象時,調用的方法是本類的方法; (2)創建子類對象時,調用的方法是子類重寫的方法或是繼承的方法 注意:如果是子類獨有的方法,那么無法通過父類的引用讀取子類的方法
Animal類 (父類)
package com.wmy;public class Animal { public void eat(){ System.out.Dog類(子類)package com.wmy;public class Dog extends Animal { //重寫父類的eat方法 public void eat(){ System.out.println("狗是吃肉的"); } //子類獨有的方法 public void watchDoor(){ System.out.println("狗具有看門的能力"); }}貓類(子類)
package com.wmy;public class Cat extends Animal {}測試類
package com.wmy;public class Initial { public static void main(String[] args) { //引用多態 Animal obj1 = new Animal();//父類的引用可以指向本類的對象 Animal obj2 = new Dog();//父類的引用可以指向子類的對象 Dog obj3 = new Animal();//錯 ,子類的引用不能指向父類的對象 //方法多態:都是指向父類對象,當指向不同的對象,調用方法時候執行不同的方法 obj1.eat(); //調用的方法是Animal類(父類)的方法 obj2.eat(); //調用的方法是Dog類(子類)的方法 Animal obj4 = new Cat();//父類的引用可以指向子類的對象 obj4.eat(); // 調用的方法是Cat類(子類)繼承父類的方法 //如果是子類獨有的方法,那么無法通過父類的引用讀取子類的方法 obj2.watchDoor();//錯 }}新聞熱點
疑難解答