德尔福儿童班

bAN*_*bAN 1 delphi parent-child

我认为这是一个愚蠢的问题.但是......当在Delphi中声明一个其他类的子类时,孩子们是否直接得到了父母的方法?解释:名为'P'的类是名为'C'的类的父类,'P'类有一个名为'Mth'的方法.是否可以调用'C.Mth'或者我在'C'的声明中注意到某些内容(可能是构造函数?)

问题与变量相同..

我希望足够清楚......非常感谢回复......

All*_*uer 7

是.这称为"继承".这意味着父类的所有属性都由子类"继承".如果你没有做任何事情来改变子类中的任何东西(覆盖虚拟,添加字段,添加方法等等),那么子类的功能与父类相同.您可以将子类传递给其他期望父类的函数,因为通过继承,子级共享父级的所有特性.


Jon*_*cto 5

子类继承其父类的所有受保护,公共和已发布的属性,函数和过程.

它可以直接调用它们,没有任何特殊语法,只要子类没有覆盖它们.

例如:

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;
Run Code Online (Sandbox Code Playgroud)