我不是在找你給我這個答案,我只是要求解釋給我一個理解我如何找到答案。需要繼承關係解釋
假設我們有四個班的一個項目A,B,C和D.我們有以下變量:
A中的; B b; C c; D d;
以下作業全部合法(全部編譯):
a = b; a = c; d = b;
下列賦值非法的(它們會導致編譯器錯誤):
C = d; d = c; d = a;
繪製這些類之間的繼承關係。
幫助表示讚賞,感謝:)
我不是在找你給我這個答案,我只是要求解釋給我一個理解我如何找到答案。需要繼承關係解釋
假設我們有四個班的一個項目A,B,C和D.我們有以下變量:
A中的; B b; C c; D d;
以下作業全部合法(全部編譯):
a = b; a = c; d = b;
下列賦值非法的(它們會導致編譯器錯誤):
C = d; d = c; d = a;
繪製這些類之間的繼承關係。
幫助表示讚賞,感謝:)
的法律分配意味着該類左側的變量是類的右側一個超類。
a = b
意思是b在a的子類層次結構中的某處,或者換句話說,a是b的祖先。
如果不編譯,則表示這不是有效的賦值。
從您的「合法」賦值中,可以推斷出b是a的子類,c是a的子類,b是d的子類。
希望,這應該足以讓你繼續下去。
嗨,感謝您的信息。我已經將它們歸類爲法律和非法,這個問題是否完成?還是有下一步?感謝您一直以來的幫助。 – user888175
@ user888175,是的。要從字面上「繪製」這些類之間的繼承關係,您需要了解UML。 – mre
那麼,考慮到考場中我們沒有電腦的情況。那麼如何才能完成這個問題呢? – user888175
以下是可能用於開發圖表的方法。在四個類的集合之間繪製每條可能的繼承線。如果分配是合法的,那麼對應於該關係的繼承行可以被標記爲有效。如果分配是非法的,那麼可以刪除與該關係相對應的繼承行。一旦完成,其餘行應包含最終的繼承映射。
如果一個類X從等級Y繼承,也可以一個對象x分配給Y型的變量,像這樣:
y = x;
如果2類不繼承這是不可能的,並你會得到一個編譯錯誤。
旁註:這意味着你只能訪問Y的方法,即使它仍然是仍然類X.
這裏的目標有一個提示:世界上只有一個符合有效的層次給定的約束。
繪製一個有向無環圖。如果分配有效,請從分配的值的類型(右側)繪製箭頭,以指定分配的變量的類型(左側)。如果分配無效,那麼在該方向上沒有箭頭。這將產生看起來像UML的東西,其中派生類的箭頭指向其超類。
這功課呢? – Kal
不,這是一個模擬考試的問題。我真的不知道從哪裏開始。分層是一回事,但繼承關係讓我大開眼界。 – user888175
如果是「考試」,它與作業有什麼不同嗎? –