super调用的是父类的方法,你应该在InfiniteRecursion写上extends其父类吧
解决方案 »
- 最基本的java问题:java 命令调用jar包
- double类型是否可用移位符>>?
- 线程同步问题,请帮忙
- 7.制作一个java应用程序,模拟实现堆栈的数据读写,即对某堆栈的pop()和push();
- 这两个算法哪个的速度快?
- 关于代理服务器java.net.SocketException: Unrecognized Windows Sockets error: 10107:
- JComboBox下拉框被遮挡的问题
- JTree节点上的文字显示长度是如何控制的?
- 线程小程序,请大神们指点
- ***十万火急!!!关于URLConnection在线等待
- applet中如何弹出窗口?(分只给一人)
- 关于比较两个文件的程序怎么 写???高手帮忙!!!
Object o = a;
String name = o.getClass().getName();
那么name的值是什么?当然是InfiniteRecursion
父类而出现改变,因为当前的类的确是InfiniteRecursion 这个是继承的规范
InfiniteRecursion a = new InfiniteRecursion();
Object o = a;
String name = o.getClass().getName();
那么name的值是什么?当然是InfiniteRecursion
老兄,这是不一样的,你上面的代码中,根据java 通过RTTI机制可以在执行时知道"o是InfiniteRecursion 的对象,所以o.getClass().getName();当然执行的是InfiniteRecursion的getClass().getName()(所谓的多态).而super.toString的确调用的是Object的toString(){
getClass().getName() + "@" + Integer.toHexString(hashCode());
关键是这里的getClass()为什么是调用的InfiniteRecursion的getClass(),除非有这样的一个设想super.toString()调用是,隐含地传递一个this参数!我想应该是这样的!不知大家认为是怎么样的?
你再考虑一下我上面的程序,要是按你讲的,会出现什么情况!ChDw(米) 说的有一定的道理,不知道你是在那里看到的!能否详细的说明一下!