请教类重写的问题

Jim@luckeeinc.com 2011-03-02 03:37:51
如果有两个类A 和 B, 其中B是A的子类
都有各自的方法 比如test();
其中B中的test()重写了父类中的test()方法

C++中写 A *a = new B();
a->test();
这里用的a中的test

java中如果写 A a = new B();
a.test();
本以为也能会跟C++中一样调用a中的test(); 可运行后他调用的却是B中的test();查了一下网上说因为B重写了A中的test方法因此会调用子类中的test

是两者确实这方面是有区别的还是我理解有问题?谢谢
...全文
59 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jim@luckeeinc.com 2011-03-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xpdavis 的回复:]
在C++中,如果test有virtual修饰,那边a.test();就会调用子类的实现
JAVA中好像对类的声明有个abstract或者interface之类的修饰吧,记不太清楚了,楼主有兴趣可以查一下。
[/Quote]

谢谢 查了一下 两者确实是有区别的
Java中如果前面没有任何修饰的话可以认为都是virtual
e_board 2011-03-02
  • 打赏
  • 举报
回复
只有虚函数才能被覆盖,在c++重要用virtual修饰
铖邑 2011-03-02
  • 打赏
  • 举报
回复
在C++中,如果test有virtual修饰,那边a.test();就会调用子类的实现
JAVA中好像对类的声明有个abstract或者interface之类的修饰吧,记不太清楚了,楼主有兴趣可以查一下。
仿QQ音乐播放器文件List控件 =================================== 一款界面的源代码主要模仿QQ音乐播放器中的文件列表List控件界面。 以下是作者信息:在此感谢这位网友,有问题可以直接找作者沟通请教。 '联系QQ 506422660 'E-Mail Owhao@126.com 'QQ: 74XXX23 '如果没事请勿打扰 '只花费了一个早上,因为有前一个基础 '帮一个网吧写点歌系统,写了一个播放列表控件,因为是自己用,所以功能和样式都是固定的 '所以在前面的基础上,重写了这个播放列表 '【//修正信息: '//修正了一个BUG '//因为是急匆匆完成,我没有那么多时间去调试 '//现在发现的一个BUG就是绘画底部的项如果是空白的不会擦除 '//如果每次擦除,会闪烁,肯定是我的思路里有很大的BUG '//就是这个BUG,这个源码已经修正】 '我没时间去修改了(因为我是很懒的) '各位根据自己的要求,去修改吧。 '因为找不到QQ音乐的那个绿色的播放图标,打开下面的所有EXE、DLL、ICO、Image都找不到。。。 '所以用另外一个图标代替了。 '这个图标放在资源文件 TCICON 中的 PLAYICON 里。 '支持真彩色带 Alpha 通道的图标,替换只要替换这个资源就可以了 '替换后修改一下 Private Const ICON_SIZE As Long = 12 '图标的尺寸 ' 【版权声明】 '欢迎自由传播或者商业用途。但是请保留原作者 '最终版权归作者所有 2009-03-06 作者已经修复了几处BUG,请大家下载更新。感谢作者。

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧