提问人:Deeksha Aggarwal 提问时间:3/27/2017 最后编辑:Chris HamiltonDeeksha Aggarwal 更新时间:3/27/2017 访问量:484
为什么 Java 不允许从父构造函数创建子对象 [closed]
Why doesn't Java allow child object creation from parent constructor [closed]
问:
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 的新手 - 谁能告诉我为什么在使用父构造函数时无法创建子类的上述对象?
答:
2赞
Dhrubajyoti Bhattacharjee
3/27/2017
#1
在你的例子中,Boy IS-A Human,所以你可以使用 Boy 的构造函数创建 Human。但是由于(根据 OOP)Human 不是 Boy,因此您不能创建 Boy 的实例来调用 Human 的构造函数。 因此,您不能直接使用 super 构造函数或父构造函数创建子实例。 男孩男孩 = new Human();不可能 人类 hm = new Boy();可能
评论