既然Dog是Animal的子类,那他也有age属性,我为什么不能直接在Dog类里直接给age赋值呢
课程做了深入讲解。希望课程对你有帮助。同学您好,提示您的错误是变量未定义!您最好把代码帖出来,这样才能更好的帮您解决问题!
package com.wangqiang.inherit;
class Animal{
private String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Dog extends Animal{
static String food;
Animal an=new Animal();
void show(){
an.setName("小黑");
food="狗粮";
super.age=12;
System.out.println("name:"+an.getName()+"\n"+"age:"+age);
}
}
public class Inherit {
public static void main(String[] args) {
// TODO Auto-generated method stub
Dog dog = new Dog();
dog.show();
System.out.println("food"+dog.food);
}
}
这段可以赋值啊,不过如果在Dog类内的方法外就没法赋值,不知道因为啥。
写了extends啊
肯定是可以的,估计你的Dog类没有如此定义
public class Dog extends Animal
没看懂!我在animal里面只定义了age没有给它赋值,Dog继承了Animal,那Dog也有age属性吧,那我为什么不能在Dog输出age,或者给它赋值。报错的是Syntax error on token "age", VariableDeclaratorId expected after this token
super.age是Animal的属性,age是Dog的属性,在Dog中重定义age属性,应该是说Amimal的age不适用Dog