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

关于课后习题,请问为什么反复调用不同子类的方法,属性的值不会变,只赋值一次?

package guoke;
 
public class Bus extends Vehicle { //Bus类继承 Vehicle类。在Bus.java我还建了其他Vehicle的子类,car,bicycle类
 
/*问:为什么通过反复调用不同子类的date方法,
name,number,way属性只赋值一次?   我是这样调用的   Bus bus=new Bus();  
                                                   bus.date();
                                                   Car car=new Car();
                                                   car.date();
 结果显示全是第一次调用的结果,比如上面这样写的话, 就是显示两次bus的属性。
                                                   
*/
/* 父类这样写的
     public class Vehicle {
     protected  String name;
     protected  int number;
     protected  String way;
     public  void date(){
        System.out.println("交通工具可以载客");
     }
 
}
*/  
     protected  String name="bus";//属性
     protected  int number=40;
     protected  String way="land";
     protected  String name="bus";
     protected  int number=40;
     protected  String way="land";
public void date() {//显示属性的值
 
 
// TODO Auto-generated constructor stub
System.out.println("公交汽车可以载客:");
   System.out.println(name);
   System.out.println("载客人数number:"+number);
   System.out.println(way);
}
   
}
class Car extends Vehicle {         //car子类
protected  String name="car";
    protected  int number=4;
    protected  String way="land";
public void date() {
 
// TODO Auto-generated constructor stub
System.out.println("轿车可以载客:");
   System.out.println(name);
   System.out.println("载客人数number:"+number);
   System.out.println(way);
}
class Bicycle extends Vehicle {    //Bicycle子类
protected  String name="bicycle";
   protected  int number=2;
   protected  String way="land";
public void date() {
 
// TODO Auto-generated constructor stub
System.out.println("自行车可以载客:");
   System.out.println(name);
   System.out.println("载客人数number:"+number);
   System.out.println(way);
  
}


正在回答

1 回答

每个子类对象中属性是独立的啊

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

风中过客 提问者

就是啊, 所以才不知道怎么回事
2015-04-17 回复 有任何疑惑可以回复我~
#2

没有马甲线的安琪拉 回复 风中过客 提问者

。。。只要是非静态属性,都是独立的,这个是语法规定啊
2015-04-20 回复 有任何疑惑可以回复我~
#3

风中过客 提问者 回复 没有马甲线的安琪拉

谢谢,应该是我其他地方弄错了吧。
2015-04-20 回复 有任何疑惑可以回复我~
#4

xiaojie0909121627 回复 风中过客 提问者

应该用初始化块或者构造方法初始化num,name,number的值,而你重新定义了子类与父类同名的局部变量,这是逻辑上的错误。
2015-05-04 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

关于课后习题,请问为什么反复调用不同子类的方法,属性的值不会变,只赋值一次?

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