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

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

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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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