2013-10-19 62 views
-1

enter image description here當你創建一個這樣的對象時會發生什麼?

所以

A a1=new A();確實左邊的圖。

B b1=new B();確實右邊的圖。

如果我做到這一點...

B c1=new A(); 

如何將這項擬合圖中?

另外,還有一個問題。

A a1=new A(); 

據我所知, 「新的A()」 創建一個矩形 和 「A1」 創建A1參考。

「A」在開始時做了什麼?它在哪裏適合這幅畫?

謝謝。

+1

你到底在問什麼?你在談論繼承嗎? – kmas

+0

「開始時的A」是a1的引用類型 - 它定義了變量a1可以包含哪種對象引用。並且注意'int i1 = 7;'是聲明一個int類型的變量(整型),它可以包含一個數字(在本例中爲7)。這不是對象的「引用」,而是「標量」值。 –

+0

繪圖從哪裏來?這是一個功課問題嗎? – pburka

回答

1

B c1 = new A()通常是不正確的,除非A是從B的派生類。如果是 - 它將創建一個由名爲c1的變量(其類類型爲B)引用的A的實例。

A開頭指定實例的類型。它通常用於靜態分析編譯器來確定變量指向的實例上可用的操作。 例如,如果編寫int a,編譯器將知道變量a應該被視爲一個整數,並且如果您嘗試執行int類型不支持的操作,則會在編譯時發出警告/失敗。

1

class Aextendsclass B爲了讓你能夠做到B c1 = new A();

爲了讓您瞭解這兩個如何相互作用,你需要了解繼承以及如何構造相互作用。

相關問題