2017-02-28 71 views
0

我写了这个,但我不明白这是什么。在一行中一起创建父子类的对象?

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

你偶然发现了一个变量及其与继承关系的连接的静态和动态类型的区别。

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

由于ClassB extends ClassA,它有各种方法和属性ClassA(也许更多),它是可以使用是通过abc

相关问题