繼承是多態(tài)的基礎(chǔ),是指對(duì)象的多種形態(tài) 1.引用的多態(tài) (1)父類的引用可以指向本類的對(duì)象 (2)父類的引用可以指向子類的對(duì)象 注意:子類的引用不能指向父類的對(duì)象 2.方法的多態(tài) (1)創(chuàng)建本類對(duì)象時(shí),調(diào)用的方法是本類的方法; (2)創(chuàng)建子類對(duì)象時(shí),調(diào)用的方法是子類重寫的方法或是繼承的方法 注意:如果是子類獨(dú)有的方法,那么無法通過父類的引用讀取子類的方法
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("狗是吃肉的"); } //子類獨(dú)有的方法 public void watchDoor(){ System.out.println("狗具有看門的能力"); }}貓類(子類)
package com.wmy;public class Cat extends Animal {}測(cè)試類
package com.wmy;public class Initial { public static void main(String[] args) { //引用多態(tài) Animal obj1 = new Animal();//父類的引用可以指向本類的對(duì)象 Animal obj2 = new Dog();//父類的引用可以指向子類的對(duì)象 Dog obj3 = new Animal();//錯(cuò) ,子類的引用不能指向父類的對(duì)象 //方法多態(tài):都是指向父類對(duì)象,當(dāng)指向不同的對(duì)象,調(diào)用方法時(shí)候執(zhí)行不同的方法 obj1.eat(); //調(diào)用的方法是Animal類(父類)的方法 obj2.eat(); //調(diào)用的方法是Dog類(子類)的方法 Animal obj4 = new Cat();//父類的引用可以指向子類的對(duì)象 obj4.eat(); // 調(diào)用的方法是Cat類(子類)繼承父類的方法 //如果是子類獨(dú)有的方法,那么無法通過父類的引用讀取子類的方法 obj2.watchDoor();//錯(cuò) }}新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注