2017-02-28 26 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

相關問題