一行创建父子类的对象?

时间:2017-02-28 05:48:23

标签: object constructor

我写了这个,但我不明白这是什么。

Public ClassA {

//some methods here
}



Public ClassB extends ClassA {

Public static void main(String[] args) {

ClassA abc=new ClassB                

//What is purpose of this line and what advantage it gives us. I accidently wrote this but compiler (Eclipse not generating any error on this statement).

} 

1 个答案:

答案 0 :(得分:1)

您碰巧遇到了变量的静态和动态类型的区别及其与继承关系的连接。

您的变量abc具有静态类型ClassA。因此,编译器只允许您在该变量上使用该类中定义的方法。初始化abc后,它具有动态类型ClassB

ClassB extends ClassA起,它具有ClassA的所有方法和属性(可能更多),并且可以通过abc使用。