Object Pascal 中的继承与多态编程
1. 继承与构造函数
在编程中,继承是一个重要的概念。在 Object Pascal 里, inherited 关键字可用于在派生类的方法中调用同名方法或不同方法,构造函数也不例外。与 C++、C# 或 Java 不同,在 Object Pascal 中调用基类构造函数并非强制要求,但在大多数情况下,手动调用基类构造函数非常重要。
例如,对于组件类,组件的初始化实际上是在 TComponent 类级别完成的:
constructor TMyComponent.Create (Owner: TComponent);
begin
inherited Create (Owner);
// specific code...
end;
因为对于组件而言, Create 是一个虚方法,同样,所有类的 Destroy 析构函数也是虚方法,在其中应记得调用 inherited 。
如果创建的类仅继承自 TObject ,在其构造函数中是否需要调用基类的 TObject.Create 构造函数呢?从技术角度看,答案是否定的,因为该构造函数为空。不过,养成始终调用基类构造函数的习惯是个不错的选择,尽管这可能会使代码稍微变慢,但影响微乎其微。
2. 虚方法与动态方法
在 Obje
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



