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

为什么我在Animal类中final了age的属性,视频中说在main方法中不能赋值,而我打的却可以?

Animal类代码:

package project1;


 public class Animal {

final public int age=2;

public String name;

 public void eat()

{

System.out.println("具有吃东西的能力");

System.out.println("它叫"+name+"今年"+age+"岁");

}

public Animal(){

//age=3;

System.out.println("Animal方法执行了");

}


}

子类dog代码:

package project1;


public class dog extends Animal {

public int age=10;

public void eat()

{

System.out.println("小狗具有吃东西的能力");

System.out.println("叫"+name+"今年"+age+"岁");

}

public dog(){

System.out.println("dog方法执行了");

}

}

main方法代码:

package project1;


public class DUIXIANG {


public static void main(String[] args) {

// TODO 自动生成的方法存根

dog g=new dog();

g.age=3;

g.name="小白";

g.eat();


}


}


正在回答

5 回答

建议你打印一下你的age,你应该就知道怎么回事了

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

dog类的是重新定义了一个int属性的age,改写改的也是dog类的age

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

dog里面也定义了一个int 的age,子类和父类里面的类有重名的

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

你定义的是dog对象 改的是dog里的age 和父类的age半毛钱关系都没有

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

子类无法继承父类用final修饰的方法属性,你改变的是子类的age

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

福工刘德华 提问者

是在父类Animal里面final的啊
2017-08-15 回复 有任何疑惑可以回复我~
#2

psh 回复 福工刘德华 提问者

试下super?
2017-08-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我在Animal类中final了age的属性,视频中说在main方法中不能赋值,而我打的却可以?

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