多态:对象的多种形态
注:在使用多态的时候,两个类需要有继承关系。
1.引用多态:父类的引用可以指向本类的对象;父类的引用可以指向子类的对象。子类的引用不可以指向父类的对象。
2.方法多态:创建本类对象时,调用的方法为本类方法;
创建子类对象时,调用的方法为子类重写的方法或继承的方法。
注:如果子类具有一个独有的方法,那么就不能通过父类的引用调用子类独有的方法。
1 package com.imooc; 2 3 public class Animal { 4 public void eat(){ 5 System.out.println("动物具有吃的能力"); 6 } 7 }
1 package com.imooc; 2 3 public class Dog extends Animal { 4 public void eat(){ 5 System.out.println("狗是吃肉的"); 6 } 7 8 public void watchDoor(){ 9 System.out.println("狗具有看门的功能"); 10 } 11 }
1 package com.imooc; 2 3 public class Cat extends Animal { 4 5 }
1 package com.imooc; 2 3 public class Initial { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 Animal obj1 = new Animal(); //父类引用指向本类对象 8 Animal obj2 = new Dog(); //父类引用指向子类对象 9 //Dog obj3 = new Animal(); //子类的引用不能指向父类的对象 10 Animal obj3 = new Cat(); 11 12 obj1.eat(); //创建本类对象时,调用的方法为本类方法 13 obj2.eat(); //创建子类对象时,调用的方法为子类重写的方法 14 obj3.eat(); //创建子类对象时,调用的方法为子类继承的方法 15 16 //obj2.watchDoor(); //不能通过父类的引用调用子类独有的方法 17 } 18 19 }