当前位置:  开发笔记 > 编程语言 > 正文

关键字"动态"对程序有什么作用?

如何解决《关键字"动态"对程序有什么作用?》经验,为你挑选了1个好方法。

使用关键字dynamic声明过程会发生什么?

使用关键字static声明它会产生什么影响?



1> David Heffer..:

通过阅读文档可以回答这个问题.

dynamic关键字引入了一种可以多态覆盖的方法.在语义上它可以互换virtual,但是以不同的方式实现.在这里阅读:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Methods#Virtual_and_Dynamic_Methods

要使方法成为虚拟或动态方法,请在其声明中包含虚拟或动态指令.与静态方法不同,虚拟和动态方法可以在后代类中重写.调用重写方法时,方法调用中使用的类或对象的实际(运行时)类型 - 而不是变量的声明类型 - 确定要激活的实现.

要覆盖方法,请使用override指令重新声明它.覆盖声明必须与其参数的顺序和类型以及结果类型(如果有)中的祖先声明匹配.

...

在Delphi for Win32中,虚拟和动态方法在语义上是等效的.但是,它们在运行时方法调用调度的实现方面有所不同:虚拟方法针对速度进行优化,而动态方法针对代码大小进行优化.

通常,虚方法是实现多态行为的最有效方法.当基类声明许多可覆盖的方法时,动态方法很有用,这些方法由应用程序中的许多后代类继承,但只是偶尔被覆盖.

类静态方法就像类方法一样,它们是在类而不是实例上调用的.类static和class方法之间的区别在于类方法是传递Self包含类的指针,而类静态方法则不是.这意味着类方法可以是多态的,而类静态方法则不能.在这里阅读:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Methods#Class_Static_Methods

与类方法一样,可以在没有对象引用的情况下访问类静态方法.与普通的类方法不同,类静态方法根本没有Self参数.他们也无法访问任何实例成员.(他们仍然可以访问类字段,类属性和类方法.)与类方法不同,类静态方法不能声明为虚拟.


尽管如此,我还是向您推荐这个问题:如何搜索Delphi文档?


问题并未说明这一点.此外,`dynamic`和`static`只能应用于方法.
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有