我把返回值类型改为Heart为什么会报错?

我把返回值类型改为Heart为什么会报错?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public Object getHeart()
    {
        class Heart
        {
            public  int age = 13;
 
            int temp = 22;
 
            public  void say()
            {
                System.out.println("hello");
            }
 
            public String beat()
            {
                new Person().eat();
                return new Person().age + "心脏在跳动";
            }
        }
        return new Heart();
    }

此时,我把返回值类型改为Heart为什么会报错?

它告诉我让我新建一个Heart类,可是我在方法内部不是定义了嘛

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你定义的getHeart()返回值类型是Object,Object是所有类的父类,父类转成子类,是不被允许的。因为通常子类都有父类没有的属性或方法。

  • 飞翔的小马哥 提问者 #1
    体重的代码并没有报错,是在我把Object 返回类型改为Heart类的适合才报错的
    2017-08-24 14:52:47
  • irista23 回复 提问者 飞翔的小马哥 #2
    他这个是子类转父类是没有问题的,问题在定义在方法内部的内部类的可见性最小,它只在方法体内部可见,视频在2分20秒处老师已经说明。
    2017-08-24 15:17:16
  • 飞翔的小马哥 提问者 #3
    非常感谢!
    2017-08-24 18:46:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码