java学习-多态

1、类的继承关系

在这里插入图片描述

1.1 PDemo2.java
public class PDemo2 {

    public void say(){
        System.out.println("PDemo2 say().....");
    }
}
1.2 CDemo2.java
public class CDemo2 extends PDemo2 {

    public void eat(){
        System.out.println("CDemo2  eat()....");
    }

    public void say(){
        System.out.println("CDemo2  say()....");
    }
}
2、测试
public class ExtendsDemo {

    public static void main(String[] args){

        ExtendsDemo.test1(new CDemo2());
        ExtendsDemo.test2(new CDemo2());

    }

    public static void test1(PDemo2 demo2){
        demo2.say();
    }

    public static void test2(PDemo2 demo2){
        ((CDemo2)demo2).eat();
    }
}
2.1 输出结果
CDemo2  say()....
CDemo2  eat()....
2.2 总结
1、子类可以自动向上转型为父类
2、方法参数传递为引用传递,尽管参数是父类,但是其引用仍然指向的是子类。因此当方法重写后,传入的是谁就调用谁的方法。
3、如果父类可以被强制转换为子类,并执行子类的方法

本文是学习过程中的思考和总结,如果请大家多多指正!

猜你喜欢

转载自blog.csdn.net/shan_zhi_jun/article/details/83176778