我认为这是一个愚蠢的问题..但是..当在Delphi中声明另一个类的子类时,孩子们是否直接获得了父母的方法?解释:名为“P”的类是名为“C”的类的父类,“P”类有一个名为“Mth”的方法。是否可以调用'C.Mth'或者我注意到'C'的声明中的某些内容(可能是构造函数?)..
问题与变量相同..
我希望足够清楚..非常感谢您的回复...
我认为这是一个愚蠢的问题..但是..当在Delphi中声明另一个类的子类时,孩子们是否直接获得了父母的方法?解释:名为“P”的类是名为“C”的类的父类,“P”类有一个名为“Mth”的方法。是否可以调用'C.Mth'或者我注意到'C'的声明中的某些内容(可能是构造函数?)..
问题与变量相同..
我希望足够清楚..非常感谢您的回复...
是的。这称为“继承”。这意味着父类的所有属性都被子类“继承”了。如果您不做任何更改子类中的任何内容(覆盖虚拟、添加字段、添加方法等),那么子类的功能将与父类相同。您可以将子类传递给期望父类的其他函数,因为通过继承,子类共享父类的所有品质。
子类继承其父类的所有受保护、公共和发布的属性、函数和过程。
它可以直接调用它们,无需任何特殊语法,只要子类没有覆盖它们。
例如:
type
P = class
public
procedure Mth;
end;
C = class(P)
public
procedure Foo;
end;
// ... implementation ...
procedure C.Foo;
begin
Mth; // Calls the P.Mth procedure.
end;
是的,您可以调用父方法,就好像它们属于子方法一样。这是面向对象层次结构强大功能的一部分。