![](/img/trans.png)
[英]Are objects of parent classes implicitly created when instantiating an object of a child class
[英]Instantiating Objects & the relation of Child/Parent classes
所以,我試圖在這里理解一些概念。
1)創建新對象的一般“語法”(如果你願意)。 例如,以下哪個是“正確的”(我知道實例化對象的方法不止一種):
//1) ChildClass obj = new ParentClass();
//2) ParentClass obj = new ChildClass();
我知道以下兩個是“合法的”,但我無法理解在Child / Parent類中實例化對象之間的區別
(我已經知道這兩個還可以):
ChildClass obj = new ChildClass();
ParentClass obj = new ParentClass();
2)基本上,我要問的是“哪個ClassName指的是從/上實例化對象的類(措辭?抱歉......),以及該對象屬於哪個ClassName ?”
如果這不是真的有意義,我道歉。 我試着盡我所能寫出來。
(一些背景:我目前正在學習面向對象Java的第一個“課程”)
如果ChildClass
從ParentClass
擴展,您可以這樣做
ParentClass obj = new ChildClass();
但不是相反。
該聲明的左側是將聲明或靜態類型ParentClass
名為obj
的變量放入當前作用域。 右側是為變量分配對動態類型ChildClass
的new
對象的引用。 正在實例化ChildClass
對象並將其分配給ParentClass
類型的變量。
換句話說,使用變量obj
,為了使編譯器滿意,您只能訪問在其聲明的類型上聲明的方法,即。 ParentClass
。 如果要調用ChildClass
方法,則需要進行轉換。
((ChildClass)obj).someChildClassMethod();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.