//先看代码
//创建一个父类
public class Plant{
String color;
String kind;
private int age;
public void eat(){
System.out.println("有的植物可以被食用,比如香蕉。");
}
}
//创建子类
public class Banana extends Plant{
}
//创建运行类
public class Run{
public static void main(String[] args){
Banana banana=new Banana();
banana.color="yellow";
banana.kind="fruit";
banana.eat();
System.out.println("香蕉的颜色是"+banana.color);
System.out.println("香蕉的种类是"+banana.kind);
}
}
//运行结果:
//有的植物可以被食用。
//香蕉的颜色是yellow
//香蕉的种类是fruit
//再创建一个Banana的子类
public Hello extends Banana{
}
//再创建一个运行类
public class Run2{
public static void main(String[] args){
Hello hello=new Hello();
hello.eat();
System.out.println(hello.color);
System.out.println(hello.kind);
}
}
//运行结果:
//有的植物可以被食用。
//null
//null
为什么Hello类作为Banana的子类却不能继承Banana的属性和方法(显然eat方法是继承Plant);
课程里说Java只能单继承,我创建的Hello类是Banana的子类,却继承了Plant类的属性和方法,这是不是有两个父类呢?
望高手解答,谢谢!public class Run2{
public static void main(String[] args){
Hello hello=new Hello();
hello.eat();
//你并没有调用父类方法的color和kind啊,而且也没有给这个属性赋初始值,就默认为null了。
//你只是在run中的main方法中给Banana赋值了,对Hello并没有影响。
//你在这里输入hello.color="test"; hello.kind="test"就好了,或者给Plant的两个属性赋一个初始值。
System.out.println(hello.color);
System.out.println(hello.kind);
}
}eat方法的运行结果少写了“比如香蕉”,请忽略。