我在使用Ada和一些語法來解決繼承問題時遇到了一些困難。如何設置和從抽象標記記錄派生類型?
我的目標是從具有記錄的抽象類型派生出來,並在記錄字段中使用不同的數據類型。以下是我已經能夠編譯:
type Base is abstract new Parent.ParentType with record
X:Access_Type;
end record
type Child is new Base with record
n:Integer;
end record;
但我不希望有這種額外的N場,我想有X是孩子式的整數。我無法讓編譯器對此感到滿意。像下面的內容是什麼,我想:
type Base is abstract new Parent.ParentType with tagged record
X:Access_Type;
end record;
type Child is new Base with record
X:Integer;
end record;
不幸的是,我無法弄清楚如何標記基本類型,我認爲可以讓我重新分配X字段。 (沒有標記,編譯器會抱怨聲明有衝突。)
有人可以對此有所瞭解嗎?我對OO編程一般都很陌生,我發現Ada的類型方法比通常的類方法更令人困惑。
你可能一直在想,'Child.X'將_shadow_'Base.X',因爲它會在Java,但不在阿達;見[PDF的第13頁](http://www.adacore.com/knowledge/technical-papers/a-comparison-of-the-object-oriented-features-of-ada-95-and-java/) 。 – trashgod