为了账号安全,请及时绑定邮箱和手机立即绑定

以下代码提示错误了。请问错误在哪里?

package com.bobby;

//创建一个Vehicle的父类

public class Vehicle {

int paasenger;

}

//创建一个Car的子类

public class Car extends Vehicle {

int passenger = 4;

}

//执行子类

public class initial {

public static void main(String[] args) {

Vehicle obj1 = new Car();

System.out.println(obj1.passenger);

}

}


正在回答

4 回答

这是动态绑定的概念,只有在父类的方法被子类重写时,才默认调动子类的方法;不被重写时调用的还是父类的方法,而父类的成员变量是不会被子类重写的,所以调用的是是父类的成员变量的值


0 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//573adbfd00012c5507080525.jpg

三个变量都不一样!怎么可能不报错!!

1 回复 有任何疑惑可以回复我~

三个类 要分别分开创建一个类 不是同一个类不能创建在一起 ,还有你父类的int paasenger单词有错,应该是passenger,  这两个错误!

1 回复 有任何疑惑可以回复我~
#1

huangguayutou 提问者

感谢。单词是有错的,我改过来了。 我三个类是分开写的。贴这里是为了方便。 我修改了单词错误,可以运行不抱错了 但出来的结果为什么是0呢
2016-04-28 回复 有任何疑惑可以回复我~
#2

YEAHDDD 回复 huangguayutou 提问者

以我的愚见,因为Vehicle obj1 = new Car(); 所以会优先执行父类的代码。解决方法之一就是将Vehicle obj1 = new Car(); 中的Vehicle改成Car
2016-05-10 回复 有任何疑惑可以回复我~

子类要重写父类的方法时,要重新定义父类的方法,为public class Vehicle {  int passenger = 4;}。

0 回复 有任何疑惑可以回复我~
#1

黄泽鑫有颗王者心

额,看错。不是方法的问题
2016-04-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

以下代码提示错误了。请问错误在哪里?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信