问方法类型和可见性表示符 一、静态,虚拟,动态,覆盖二、private,protected,public,published请用最简单最易理解的话教一下好吗?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 静态就是类方法,可以通过类调用,而不必建立对象虚拟就是应该和静态对应吧,必须用对象调用动态和虚拟一样,区别在于一个运行时解析,一个编译时解析。覆盖有两种,一种使overload,一种使override,你问得应该是后一种,其实应该叫重载就是子类方法替代父类方法private只有自己可以使用protected子类可以使用public都可以使用published不知道从java中得出的概念,delphi得太复杂了,请多多指正。 楼上的不对静态方法是在声明中参数表后不加 Virtual 或 Dynamic 字符的. 也就是方法的声明默认为静态方法虚拟方法可以在子类中进行覆盖, 用关键字 Virtual 表示. 在子类中进行覆盖时要加上关键字 Override动态和虚拟一样,区别在于一个运行时解析,一个编译时解析。覆盖 Override . 在父类中必须要声明了 Virtual 时才能进行此格式的声明, 否则, 编译出错Overload 则是重引入. 就是可以声明与父类方法相同的名字, 但要用不同的参数列表或类型.private 只有自己和友元类可以使用. (友元类: 在同一个PAS文件中声明的所有类全是友元类)protected 只有自己、友元类和子类可以使用public 都可以使用published 是拖放控到窗体上时,可以在设计时进行编辑的属性和事件从java中得出的概念,delphi得太复杂了,请多多指正。 呵呵我的不是从 JAVA 中得到.都是 Delphi 的。从java中得出的概念,delphi得太复杂了,请多多指正。这一行忘了删除!!!哈哈 HOHO,我就喜欢这种问题!一、静态,虚拟,动态,覆盖答:静态方法就是在联结编译的时候知道方法的入口地址。所以叫静态方法! 虚拟方法使用关键字Virtual,虚拟的主要目的是为了派生类可以对虚拟方法进行覆盖(Oerride)从而实现多态(向上引用) 动态方法使用Dynamic,和虚拟方法基本一致,唯一不同的是,被覆盖的虚拟方法的入口地址将放在VMT中,所以查询速度快,但不节省空间;相反,被覆盖的动态方法的入口地址不放在VMT中,而是放在DMT中,所以虽然节省空间,但查询速度想对被覆盖的虚拟方法慢一些! 覆盖是一个很容易和重载混淆的概念,对于重载(Overload)是和类的多态没有任何关系的,只是一个简单的语言现象,存在的目的就是希望类的方法可以具有同名的功能。而覆盖才是实现多态的关键技术;二、private,protected,public,published答:这些都是类的方法的可见性描述符,Delphi的过程和函数分为两种:一种是不属于任何类的方法或函数,Delphi中称其为例程;第二中就是类的成员方法!对于成员方法,其他类和派生类可以对不同的方法进行访问,至于访问权限则是由这些可见性说明符来限制的!至于各种可见性的访问权限楼主可以看看帮助中的说明,很详细!这里要说明一点的是友类的概念:在同一个单元中申明的类之间互称为友类!友类间的方法成员的可见性是完全透明的.... DSPack控制摄像头,如何调用PIN_CATEGORY_STILL截图 问一个奇怪的问题,2进制和string相互转化的问题(在线等) 向各位高手讨教,怎样使用QUICKREPORT报表打印DBGRIL中指定的一条记录?? F1BOOK怎样预览?还有单元格怎样合并? 在进程A中怎样向外部进程进程B中发送鼠标单击消息? 关于adoquery控件的几个问题? 问个最基本的问题。怎么样避免FORM极大化以及最小话的时候怎么样能到输入法那边的状态栏去? sql server 日期类型问题 怎样实现多线程的实现??? 主从表在DBGrideh中的更新 有关添加记录 过节了,谁能帮我解决这个问题?
虚拟就是应该和静态对应吧,必须用对象调用
动态和虚拟一样,区别在于一个运行时解析,一个编译时解析。
覆盖有两种,一种使overload,一种使override,你问得应该是后一种,其实应该叫重载就是子类方法替代父类方法
private只有自己可以使用
protected子类可以使用
public都可以使用
published不知道从java中得出的概念,delphi得太复杂了,请多多指正。
protected 只有自己、友元类和子类可以使用
public 都可以使用
published 是拖放控到窗体上时,可以在设计时进行编辑的属性和事件从java中得出的概念,delphi得太复杂了,请多多指正。
我的不是从 JAVA 中得到.
都是 Delphi 的。从java中得出的概念,delphi得太复杂了,请多多指正。这一行忘了删除!!!哈哈
一、静态,虚拟,动态,覆盖
答:静态方法就是在联结编译的时候知道方法的入口地址。所以叫静态方法!
虚拟方法使用关键字Virtual,虚拟的主要目的是为了派生类可以对虚拟方法进行覆盖(Oerride)从而实现多态(向上引用)
动态方法使用Dynamic,和虚拟方法基本一致,唯一不同的是,被覆盖的虚拟方法的入口地址将放在VMT中,所以查询速度快,但不节省空间;相反,被覆盖的动态方法的入口地址不放在VMT中,而是放在DMT中,所以虽然节省空间,但查询速度想对被覆盖的虚拟方法慢一些!
覆盖是一个很容易和重载混淆的概念,对于重载(Overload)是和类的多态没有任何关系的,只是一个简单的语言现象,存在的目的就是希望类的方法可以具有同名的功能。而覆盖才是实现多态的关键技术;二、private,protected,public,published
答:这些都是类的方法的可见性描述符,Delphi的过程和函数分为两种:一种是不属于任何类的方法或函数,Delphi中称其为例程;第二中就是类的成员方法!对于成员方法,其他类和派生类可以对不同的方法进行访问,至于访问权限则是由这些可见性说明符来限制的!至于各种可见性的访问权限楼主可以看看帮助中的说明,很详细!
这里要说明一点的是友类的概念:在同一个单元中申明的类之间互称为友类!友类间的方法成员的可见性是完全透明的....