社区
Delphi
帖子详情
动态方法覆盖和静态方法覆盖有何区别。
zzybird
2003-09-12 04:56:39
感觉上没什么区别,那为什么还要virtual关键字有何用?
...全文
104
5
打赏
收藏
动态方法覆盖和静态方法覆盖有何区别。
感觉上没什么区别,那为什么还要virtual关键字有何用?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lxpbuaa
2003-09-12
打赏
举报
回复
似乎搂住的概念不是太清楚,在Pascal中,没有任何修饰符号的方法都是静态方法(这和C是不同的),动态方法是后缀为dynamic的方法,virtual为后缀的称为虚拟方法。动态方法和虚拟方法可以统称为虚方法。
静态方法和虚方法的内部调用机制有很大不同,另外,引入虚方法的目的是在子类中实现对父类功能的扩展,这是通过在子类中覆盖父类的虚方法来进行的。
—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
cow8063
2003-09-12
打赏
举报
回复
1、如果基类不知道如何实现某方法(只有派生类知道),而基类的其他方法又必须使用该方法,则把该方法声明为抽象虚方法-- virtual; abstract;(即C++的纯虚函数)。
2、如果基类能够为某方法提供一种默认实现,但派生类可能完全重写这个实现,则将该方法声明为虚方法-- virtual;并实现默认算法。
3、如果基类能够且必须提供某方法的部分的实现,而派生类必须提供另一部份的实现,则将该方法声明为非虚方法,并在基类中为其配套提供一个虚方法或抽象虚方法,以允许由基类本身调用和被派生类覆盖。
sundayzhao
2003-09-12
打赏
举报
回复
怎么说呢,好像静态有个虚拟表,编译的时候就已经确定了每个函数的地址。这里面放着所有静态方法的地址,这样程序调用的时候,直接在这里取地址,调用函数就可以了,速度比较快。而且不能被重载。
动态方法,好像编译的时候并不知道每个子类函数的地址,它是根据对象的所属的类动态调用函数,灵活方便,并且提高了速度譬如
a=class
f1:static;
f2:dynatic
b=class(a)
f1;
f2:override;
a1:a
a1:=a.create;
a1.f1 调用a.f1
a1.f2 调用a.f2;
a1:=b.create
a1.f1; 调用a.f1
a2.f2; 调用b.f2
因为a1被宣称为a类的对象,所以对于静态函数他只能调用f1,对于动态函数,
可以动态根据他所属的类来执行。
在网吧里,没有资料,写的不是很明白。
lw549
2003-09-12
打赏
举报
回复
http://expert.csdn.net/Expert/topic/1773/1773517.xml?temp=.2565119
zzybird
2003-09-12
打赏
举报
回复
我说的是类中的静态方法和动态方法。
动态
测试和静态测试的
区别
什么
动态
测试,什么又是静态测试,他们之间又有什么
区别
如果从被测试对象是否被运行的角度来划分,测试可以分为静态测试和
动态
测试两种。 静态测试是指不运行被测试的软件系统,而是采用其他手段和技术对被测试软件进行检测的一种测试技术。例如:代码走读、文档评审、程序分析等都是静态测试的范畴。常用的静态分析技术包括:控制流、信息流和数据流,但现在这些
方法
其实用的比较少,因为很多问题在编辑器的时候就解决了。在我们进行测试过程中,关于静态测试用得最多的是对文档进行评审,当然不同文档在评审时所关注的问题是完全
详细说明一下Java中
静态
方法
和普通
方法
的
区别
和联系
详细说明一下Java中
静态
方法
和普通
方法
的
区别
和联系
java的
方法
覆盖
与
方法
重载有什么异同_Java语言中
方法
重载与
方法
覆盖
的异同
Java语言中
方法
重载与
方法
覆盖
的异同导语:在Java语言的学习过程中,初学者经常分不清重载与
覆盖
,实际上,
方法
重载(Overload)和
方法
覆盖
(Override,也叫重写)都是Java多态性的体现,只是形式不同,在此,笔者简单地谈一谈两者的异同。 下面就由小编为大家介绍一下Java语言中
方法
重载与
方法
覆盖
的异同,欢迎大家阅读!1
方法
重载与
方法
覆盖
的特点1.1
方法
重载的特点Java语言中的方...
静态变量
静态
方法
与普通
方法
变量的对比--------干货满满
Tips:这章是为了解java中容易混淆实例变量静态变量的书写方式以及调用
方法
,建议反复观看。 静态变量和
静态
方法
的解释 静态变量:静态变量是由static关键字修饰的,在写代码的过程中如果一个类中有一个成员变量他的值是不变的,比如利率,利息这种的话我们就可以设置成
静态
方法
,方式就是加上关键字static。静态变量属于整个类,在类类加载的时候被分配到静态区(在堆里面) 静态变量的访问方式:既可以通过类名直接访问也可以通过对象命名访问,由于他的特殊性,比较推荐类名直接访问。
静态
方法
:和静态变量一
Java静态多态性和
动态
多态性
有何
区别
静态多态性指的是程序在编译时,系统就能决定调用哪个函数,如重载。
动态
多态性指在运行中才能
动态
确定操作指针所指的对象,主要通过虚函数和重写来实现。 java 的多态机制遵循一个原则:当父类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员
方法
,但是这个被调用的
方法
必须是在超类中定义过的,也就是说被子类
覆盖
的
方法
概念理解起来有点抽象。还是看个例子吧。 静态多
Delphi
5,392
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章