多态体现:
方法的重载和重写
对象的多态性
2.对象的多态性:
向上转型:程序会自动完成
父类 父类对象 = 子类实例
向下转型:强制类型转换
子类 子类对象 = (子类)父类实例
class A{ public void tell01(){ System.out.println("A--tell01"); } public void tell02(){ System.out.println("A--tell02"); } } class B extends A{ public void tell01(){ System.out.println("B--tell01"); } public void tell03(){ System.out.println("B--tell03"); } } public class PolDemo01 { public static void main(String[] args) { //向上转型 // B b = new B(); // A a = b; // a.tell01();//tell01重写的 // a.tell02(); //向下转型 A a = new B(); B b = (B)a; b.tell01(); b.tell02(); b.tell03(); } }
运行结果:
向上转型: 向下转型:
B--tell01 B--tell01
A--tell02 A--tell02
B--tell03
3.对象多态性的使用:
class A1{ public void tell01(){ System.out.println("A--tell01"); } } class B1 extends A1{ public void tell02(){ System.out.println("B--tell02"); } } class C1 extends A1{ public void tell03(){ System.out.println("C--tell03"); } } class D1 extends A1{ } public class PolDemo02 { public static void main(String[] args) { say(new B1()); say(new C1()); say(new D1()); } public static void say(A1 a){ a.tell01(); } }
执行结果:
A--tell01
A--tell01
A--tell01
原文地址:http://11317783.blog.51cto.com/11307783/1757222