类方法的Virtual,有什么具体的运用
unit Unit1;
interface
type
TClassA = class
protected
class var
F1 : Integer;
F2 : integer;
class Procedure Proce1; virtual; abstract;
class Procedure Proce2; virtual; abstract;
public
class constructor ClassCreate;
end;
TClassB = class(TClassA)
protected
class Procedure Proce1; override;
class Procedure Proce2; override;
end;
implementation
{ TClassA }
class constructor TClassA.ClassCreate;
begin
Proce1; // Proce1 是 virtual; abstract; 本意是想调用子类的实现
Proce2; // Proce2 是 virtual; abstract; 本意是想调用子类的实现
end;
{ TClassAA }
class procedure TClassB.Proce1;
begin
F1 := 10;
end;
class procedure TClassB.Proce2;
begin
F2 := 100 div F1
end;
end.
{
结果是运行出错,根本不会去调用TClassB 对应的过程,
只会调用TClassA 的对应过程,面TClassA里这两个方法都是abstract
因为 Proce1 必须先于Proce2 调用,
所以用类似模板方法的思想实现,在父类里因定好调用顺序,子类里具体实现
类方法的Virtual,有什么意义,有什么具体的运用。
}
interface
type
TClassA = class
protected
class var
F1 : Integer;
F2 : integer;
class Procedure Proce1; virtual; abstract;
class Procedure Proce2; virtual; abstract;
public
class constructor ClassCreate;
end;
TClassB = class(TClassA)
protected
class Procedure Proce1; override;
class Procedure Proce2; override;
end;
implementation
{ TClassA }
class constructor TClassA.ClassCreate;
begin
Proce1; // Proce1 是 virtual; abstract; 本意是想调用子类的实现
Proce2; // Proce2 是 virtual; abstract; 本意是想调用子类的实现
end;
{ TClassAA }
class procedure TClassB.Proce1;
begin
F1 := 10;
end;
class procedure TClassB.Proce2;
begin
F2 := 100 div F1
end;
end.
{
结果是运行出错,根本不会去调用TClassB 对应的过程,
只会调用TClassA 的对应过程,面TClassA里这两个方法都是abstract
因为 Proce1 必须先于Proce2 调用,
所以用类似模板方法的思想实现,在父类里因定好调用顺序,子类里具体实现
类方法的Virtual,有什么意义,有什么具体的运用。
}
...全文
相关推荐
C#调用C++ DLL类方法
在本文中,我们将探讨如何在C#中调用C++编写的DLL类方法,以实现这两种语言的有效结合。首先,我们要知道C++编写的DLL通常仅提供函数接口,而不能直接在C#中调用类。
C++ Virtual关键字的具体使用
在C++中,虚函数(virtual function)允许我们通过基类的指针或引用调用派生类中重写的方法,即使实际对象是派生类的实例。首先,让我们回顾一下标题和描述中的示例。
LMS.Virtual.Lab声学手册
这份手册着重介绍了LMS Virtual.Lab声学软件在汽车、航空航天、工业机械、家用电器等领域的应用,并提供了关于如何操作软件进行声学仿真和分析的具体知识。
Virtual SPI Virtual IIC Virtual SCCB 虚拟总线STM32驱动程序源码.rar
在实际应用中,这些驱动程序可能还需要与具体的硬件设备进行适配,例如配置GPIO引脚连接到目标设备,以及根据设备的特性调整通信参数。
C++ 中virtual 虚函数用法深入了解
一、虚拟函数(Virtual Function)虚函数的声明通常在基类中,通过在函数声明前加上`virtual`关键字来实现。


语言基础/算法/系统设计
