社区
语言基础/算法/系统设计
帖子详情
问方法类型和可见性表示符
koushui
2003-09-15 10:09:36
一、静态,虚拟,动态,覆盖
二、private,protected,public,published
请用最简单最易理解的话教一下好吗?谢谢
...全文
58
7
打赏
收藏
问方法类型和可见性表示符
一、静态,虚拟,动态,覆盖 二、private,protected,public,published 请用最简单最易理解的话教一下好吗?谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dawnming
2003-09-15
打赏
举报
回复
我提
cmain83
2003-09-15
打赏
举报
回复
呵呵
我的不是从 JAVA 中得到.
都是 Delphi 的。
从java中得出的概念,delphi得太复杂了,请多多指正。
这一行忘了删除!!!
哈哈
cmain83
2003-09-15
打赏
举报
回复
楼上的不对
静态方法是在声明中参数表后不加 Virtual 或 Dynamic 字符的. 也就是方法的声明默认为静态方法
虚拟方法可以在子类中进行覆盖, 用关键字 Virtual 表示. 在子类中进行覆盖时要加上关键字 Override
动态和虚拟一样,区别在于一个运行时解析,一个编译时解析。
覆盖 Override . 在父类中必须要声明了 Virtual 时才能进行此格式的声明, 否则, 编译出错
Overload 则是重引入. 就是可以声明与父类方法相同的名字, 但要用不同的参数列表或类型.
private 只有自己和友元类可以使用. (友元类: 在同一个PAS文件中声明的所有类全是友元类)
protected 只有自己、友元类和子类可以使用
public 都可以使用
published 是拖放控到窗体上时,可以在设计时进行编辑的属性和事件
从java中得出的概念,delphi得太复杂了,请多多指正。
idilent
2003-09-15
打赏
举报
回复
静态就是类方法,可以通过类调用,而不必建立对象
虚拟就是应该和静态对应吧,必须用对象调用
动态和虚拟一样,区别在于一个运行时解析,一个编译时解析。
覆盖有两种,一种使overload,一种使override,你问得应该是后一种,其实应该叫重载就是子类方法替代父类方法
private只有自己可以使用
protected子类可以使用
public都可以使用
published不知道
从java中得出的概念,delphi得太复杂了,请多多指正。
FrameSniper
2003-09-15
打赏
举报
回复
揭贴吧!
FrameSniper
2003-09-15
打赏
举报
回复
HOHO,我就喜欢这种问题!
一、静态,虚拟,动态,覆盖
答:静态方法就是在联结编译的时候知道方法的入口地址。所以叫静态方法!
虚拟方法使用关键字Virtual,虚拟的主要目的是为了派生类可以对虚拟方法进行覆盖(Oerride)从而实现多态(向上引用)
动态方法使用Dynamic,和虚拟方法基本一致,唯一不同的是,被覆盖的虚拟方法的入口地址将放在VMT中,所以查询速度快,但不节省空间;相反,被覆盖的动态方法的入口地址不放在VMT中,而是放在DMT中,所以虽然节省空间,但查询速度想对被覆盖的虚拟方法慢一些!
覆盖是一个很容易和重载混淆的概念,对于重载(Overload)是和类的多态没有任何关系的,只是一个简单的语言现象,存在的目的就是希望类的方法可以具有同名的功能。而覆盖才是实现多态的关键技术;
二、private,protected,public,published
答:这些都是类的方法的可见性描述符,Delphi的过程和函数分为两种:一种是不属于任何类的方法或函数,Delphi中称其为例程;第二中就是类的成员方法!对于成员方法,其他类和派生类可以对不同的方法进行访问,至于访问权限则是由这些可见性说明符来限制的!至于各种可见性的访问权限楼主可以看看帮助中的说明,很详细!
这里要说明一点的是友类的概念:在同一个单元中申明的类之间互称为友类!友类间的方法成员的可见性是完全透明的....
koushui
2003-09-15
打赏
举报
回复
up?
提高C#编程水平的50个要点
- **解释**:
类型
和成员的可见
性
决定了它们的访
问
范围。 - **实践建议**:适当限制
类型
的可见
性
可以提高代码的安全
性
和可维护
性
。 #### 34. 编写大粒度的webAPI - **解释**:大粒度的API减少了网络请求次数。 - **...
Kotlin专题「十一」:可见
性
修饰
符
(private、protected、internal、public)
在 Kotlin 中有四个可见
性
修饰
符
:private,protected,internal和public。默认可见
性
是public(在没有显式修饰
符
时)。 下面将会给大家讲解修饰
符
如何在应用声明作用域的不同
类型
。 这里先来介绍一下类的几种修饰
符
,...
Kotlin学习之可见
性
修饰
符
:默认为public
可见
性
修饰
符
帮助控制对代码库中声明的访
问
。通过限制类中实现细节的可见
性
,可以确保在修改它们时避免破坏依赖这个类的代码的风险。 Kotlin与Java可见
性
修饰
符
的不同 Kotlin中的可见
性
修饰
符
与Java中的类似。同样...
Kotlin基础学习(四)—— 可见
性
修饰
符
(public、private、protected、internal)
Java中的可见
性
修饰
符
: 修饰
符
类内访
问
包内访
问
从不同包的子类访
问
从不同包的非子类访
问
public 可以 可以 可以 可以 protected 可以 可以 可以 不可以 默认 可以 可以 不可以 不可以 private 可以 不可以 不...
鸿蒙开发TS基础:ArkTS语言之:类class、类声明、字段、
方法
、构造函数、可见
性
修饰
符
、对象字面量
鸿蒙开发TS基础:ArkTS语言之:类class、类声明、字段、
方法
、构造函数、可见
性
修饰
符
、对象字面量
语言基础/算法/系统设计
16,747
社区成员
33,239
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章