向上转型和向下转型
对象的多态性:
向上转型:子类对象变为父类对象
向下转型:父类对象变为子类对象
class A{ public void print(){ System.out.println("A"); } } class B extends A{ public void print(){ System.out.println("B"); } } class C extends A{ public void print(){ System.out.println("C"); } }
使用向上转型
public static void main(String[] args) { fun(new B());//利用向上转型 fun(new C()); } public static void fun(A a){ a.print(); }
不使用向上转型,会产生很多方法
public static void main(String[] args) { fun(new B());//利用向上转型 fun(new C()); } public static void fun(B b){ b.print(); } public static void fun(C c){ c.print(); }