簡體   English   中英

實例化對象和子/父​​類的關系

[英]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的第一個“課程”)

如果ChildClassParentClass擴展,您可以這樣做

ParentClass obj = new ChildClass();

但不是相反。

該聲明的左側是將聲明或靜態類型ParentClass名為obj的變量放入當前作用域。 右側是為變量分配對動態類型ChildClassnew對象的引用。 正在實例化ChildClass對象並將其分配給ParentClass類型的變量。

換句話說,使用變量obj ,為了使編譯器滿意,您只能訪問在其聲明的類型上聲明的方法,即。 ParentClass 如果要調用ChildClass方法,則需要進行轉換。

((ChildClass)obj).someChildClassMethod();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM