细说多态
多态:
多态在代码中的体现:父类或者接口的引用指向其子类的对象。
多态代码演示:
1 public class NeiBu { 2 public static void main(String[] args) { 3 System.out.println("Hello,This is Function main..."); 4 method(new Dog()); 5 } 6 7 public static void method(Animal a){//Animal a = new Dog(); 8 a.eat(); 9 } 10 } 11 12 abstract class Animal{ 13 public abstract void eat(); 14 } 15 16 class Dog extends Animal{ 17 public void eat(){ 18 System.out.println("吃面条"); 19 } 20 } 21 class Pig extends Animal{ 22 public void eat(){ 23 System.out.println("吃饲料"); 24 } 25 }
自动类型提升:(专业讲:向上转型)
Animal a = new Dog();//自动类型提升,猫对象提升到动物类型。这个时候应该按照动物类型操作,不能访问这个猫子类的特有功能。
作用:限制对特有功能的访问。
向下转型:Dog d = (Dot)a;//向下转型的目的是为了使用子类中的特有方法。
注意:对于转型,自始自终都是子类对象在做着类型的变化。