首页 > 编程语言 > 详细

27.Java基础_多态

时间:2019-12-02 20:14:27      阅读:91      评论:0      收藏:0      [点我收藏+]

父类对象引用子类对象: Animal a=new Cat();

技术分享图片

 技术分享图片

 技术分享图片

 多态中的转型

技术分享图片

public class Animal {
    public void eat(){
        System.out.println("动物吃东西");
    }
}

public class Cat extends Animal{
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
    public void playGame(){
        System.out.println("猫捉迷藏");
    }
}

public class test {
    public static void main(String[] args) {
        //多态
        Animal a=new Cat(); //向上转型
        a.eat(); //猫吃鱼
        //a.playGame(); 会报错
        //创建Cat类的对象
        Cat b=(Cat)a; //向下转型,来解决多态不能使用子类特有功能的问题
        b.eat(); //猫吃鱼
        b.playGame(); //猫捉迷藏
    }
}

 

多态转型内存图

1.进入main函数,创建a对象

技术分享图片

 

2.执行eat函数(子类)

技术分享图片

 

3.创建Cat类型变量c将原本堆空间的对象地址赋给它.

技术分享图片

4.类型转换异常

技术分享图片

 

 

27.Java基础_多态

原文:https://www.cnblogs.com/NiBosS/p/11972616.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!