这是一个愚蠢的问题,我认为..但是..当在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;
是的,你可以像他们属于孩子调用父方法。这是面向对象层次结构的一部分。
是的。这被称为“继承”。这意味着父类的所有属性都是由子类“继承”的。如果你在子类中没有做任何改变(重写虚拟,添加字段,添加方法等),那么子类的功能与父类相同。您可以将子类传递给期望父类的其他函数,因为通过继承,子代会共享父代的所有特质。
+1,只有在不声明为私有的情况下才能访问继承的方法和字段。 – jpfollenius 2009-12-16 07:33:56
这不就是你试用它时的工作原理吗? – 2009-12-15 22:45:37
如果有人可以从答案中受益,这不是一个愚蠢的问题:-) – 2009-12-16 13:30:25
只是不要混淆在Delphi控件中的“父”属性。我更喜欢使用Base和Derived类。 – 2009-12-17 13:08:07