福工刘德华
2017-08-15 20:47
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();
}
}
建议你打印一下你的age,你应该就知道怎么回事了
dog类的是重新定义了一个int属性的age,改写改的也是dog类的age
dog里面也定义了一个int 的age,子类和父类里面的类有重名的
你定义的是dog对象 改的是dog里的age 和父类的age半毛钱关系都没有
子类无法继承父类用final修饰的方法属性,你改变的是子类的age
Java入门第二季
531488 学习 · 6328 问题
相似问题