这是因为,TClassTwo是继承自TClassOne的,而且ClassOneFunc此函数的名称在TClassTwo中是没用的,即没用被重载或overriden,因此可直接调用,delphi的编译器会自动寻访TClassTwo的父类TClassOne的ClassOneFunc方法
解决方案 »
- Delphi通过OPC传送给西门子PLC有哪些命令,能举几个例子吗
- 界面设计问题
- hook 获取到目标窗口 dbgrid,如何修改dbgrid内的checkbobox的选中状态
- 请问如何将成批的数据插入到数据库表中?
- 谁用过rave?
- 谁看了<程序员增值合订本>2002年上里面的’编写delphi IDE plug-in 指南一 的请进!!
- 怎么对多媒体播放器进行音量控制?
- 为什么在执行waitforsingleobject时,应用程序不能执行其它操作?
- 求DELPHI 5.0~~有的帮忙啊!~
- 如何自定义线程数并同步?急!急!
- 是学visual c++好,还是学delphi好,或c++ build?请大家帮帮我。我是菜鸟。
- 这条DateTimePicker日期查询语句怎么写?
//--------|正确答案是 Writeln (ClassOneFunc(100, 200));|----
ClassOneFunc 是保护方法,
在子类TClassTwo中继承下了它,
就象调用自己的方法一样.//-------|为什么不是下面这个呢? 谢谢大家讲解一些理由! |---------------
Writeln (TClassOne.ClassOneFunc(100, 200));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
因为你ClassOneFunc是对象的方法,而不是类的方法,所以不能这样用.
Writeln (TClassOne.ClassOneFunc(100, 200)); 但既然TClassTwo继承自TClassOne,那它已经拥有了TClassOne的Public方法,直接调用ClassOneFunc就可以了。如果你一定要调用TClassOne的方法,则必须先生成TClassOne的实例:
MyClassOne : TClassOne;
...
MyClassOne := TClassOne.Create;
MyClassOne.ClassOneFunc(100, 200);
MyClassOne.Free;
1:类方法
2:对象方法
3:继承
4:多态
建议看看D5从入门到精通
很好的一本讲了OOP的东东!
我想你应该理解这几个东东:
1:类方法
2:对象方法
3:继承
4:多态
建议看看D5从入门到精通
很好的一本讲了OOP的东东! 如果我不是这样学习的话,不会这样提问题的,而是提类似那个那个部件如何实现高级功能的谢谢!