为什么Java不允许从父构造函数创建子对象
class Human{
public void eat()
{
System.out.println("Human is eating");
}
}
class Boy extends Human{
public void eat(){
System.out.println("Boy is eating");
}
public static void main( String args[]) {
Boy obj1 = new Human();
//Here it shows incompatible types
}
}
我是java新手-有人能告诉我为什么在使用父构造函数时无法创建上面的子类对象吗
# 1 楼答案
在您的例子中,Boy是一个人类,因此您可以使用Boy的构造函数创建人类。但是由于(按照OOP)Human不是一个男孩,因此您无法创建男孩的实例来调用Human的构造函数。 因此,不能直接使用超级构造函数或父构造函数创建子实例。 男孩=新人类();不可能 人类hm=新男孩();可能的