我在理解 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 的类型方法比通常的类方法更令人困惑。