gpt4 book ai didi

java - 德尔福: Constructing Abstract Class like Java

转载 作者:行者123 更新时间:2023-12-02 08:57:12 26 4
gpt4 key购买 nike

只是好奇,我可以像 Java 风格一样在 Delphi 中构造一个抽象类吗?

Java声明:

public abstract class Foo {
public abstract void test();
}

使用方法:

public void testCsontruct() {
Foo clsfoo = new Foo(){
public void test(){
//....do something here

}
};
}

德尔福声明:

Tfoo = class
public
procedure test; virtual; abstract;
end;

使用方法:

procedure testUse;
var
foo:Tfoo;
begin
foo:=Tfoo.Create; //can we implement the test method here ? how?
end;

最佳答案

该 Java 功能是匿名类。它们在许多场景中都很有用。与您所说明的一样,它们通常用于捕获封闭范围内的变量。

Delphi 中没有类似的语法。匿名方法很接近,但是没有语法允许您用匿名方法替换实例化对象的虚拟方法。

您需要子类化以提供虚拟方法的具体实现。您可以在编译时以通常的方式进行子类化,或者在运行时使用虚拟方法拦截器或一些类似的 VMT 技巧进行子类化。

关于java - 德尔福: Constructing Abstract Class like Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20522065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com