多态之向上向下转型

程序已经写有Animal类与Pig类,其中Animal类只有shout方法
如下保存信息
在这里插入图片描述

内存分析

在这里插入图片描述

如果一定要访问其余方法、属性

public class Demo {
    
    
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
    
    
        Pig p = new Pig();
        Animal an = p;//转型:向上转型
        an.shout();
        //加入转型的代码:
        //将Animal转为Pig类型:
        Pig pig = (Pig)an ;//转型:向下转型
        pig.eat();
        pig.age = 10;
        pig.weight = 60.8;
    }
}

对应内存

在这里插入图片描述

思考之前的equals方法

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chwensrong/article/details/119488753