看看这个代码:
TSuper = class // An Ancestor Class.
public
procedure CommonMethod; // The Ancestor Common Method for All.
procedure GroupSpecificMethod; // The Ancestor Specific Method.
end;
TSubOne = class(TSuper) // A Subclass needs to implement GroupSpecificMethod.
public
procedure CommonMethod;
procedure GroupSpecificMethod;
end;
TSubTwo = class(TSuper) // Another Subclass needs to implement GroupSpecificMethod.
public
procedure CommonMethod;
procedure GroupSpecificMethod;
end;
TSubThree = class(TSuper) // This class Must not have GroupSpecificMethod.
public
procedure CommonMethod;
end;
我们有一个 SuperClass,它提供了一组子类的起源。
我们如何强制将 GroupSpecificMethod 从祖先类继承到某些子类而不是所有子类。
我需要它以一种优雅的方式不在子类中引入空方法。
Delphi 中的 OOP 支持这个吗?如何?
在 Delphi 中(可能在任何 OO 语言中)都无法自动清空层次结构中某个类下面的方法的实现。有两个原因:
您始终可以通过使用空实现覆盖该方法来自己完成。
这种需求非常罕见,可能是糟糕的层次结构设计的标志。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句