簡體   English   中英

在繼承類中實例化抽象類對象

[英]Instantiating abstract class object in inheriting class

我需要找到一種方法,可以在名為Spreadsheet的繼承類中從名為Cell的抽象基類實例化對象。 在我所看到的所有地方,人們都說無法做到這一點,但是在我的家庭作業中,我必須這樣做,它特別表明我們不能使父類變得非抽象。

這是作業的確切報價:

同樣,您需要在這里設計一個實際上允許電子表格創建單元格的設計,並且之前有關於如何執行此操作的提示。 您不能將公開聲明的單元格類設為非抽象。

我能想到的唯一“提示”是父類是公共抽象,繼承類只是公共類,並且它們都在同一個DLL中。

有人有想法么?

編輯:(有關更多信息)電子表格類應該包含一個二維單元格數組。 因此,為了填充此2d數組,我們需要制作單元格對象,然后將其放入2d電子表格數組的相應索引中。 唯一的問題是,因為單元格類是抽象的,所以我們無法創建任何單元格。 因此,我如何制作一個單元格並將其放入數組中?

這意味着您需要將Cell用作基類,並且繼承類至少需要一些實現。

看來,這項特殊的作業是足球術語中所謂的“ 醫院通行證 ”的一部分- Spreadsheet不應像您提到的那樣繼承自Cell

無論如何,一旦編寫了派生類,就可以這樣做:

Cell myCell = new MyDerivedCell();

瞧,您有一個抽象類的實例(抽象類不能直接實例化)。

這樣做的好處是,您可以將大部分通用單元功能放入Cell ,然后指定一些方法或屬性,這些方法或屬性應針對Cell的更專業派生而被覆蓋。

暫無
暫無

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

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