重载时报错,方法doh(float)对于类型Bar有歧义,帮忙看看
重载时报错,方法doh(float)对于类型Bar有歧义,帮忙看看
Hide.java源文件如下;
package com.jcc.tijtest.chap6;
/*
* 创建日期 2003-12-3
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
/**
* @author Administrator
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
class Homer{
char doh(char c){
System.out.println("doh(char)") ;
return c ;
}
float doh(float f){
System.out.println("doh(float)") ;
return f ;
}
}
class Milhouse{}
class Bart extends Homer{
void doh(Milhouse m){
System.out.println("doh(Milhouse)") ;
}
float doh(float f){
System.out.println("Hide.doh(float)") ;
return f ;
}
}
public class Hide {
public static void main(String[] args) {
Bart b = new Bart() ;
b.doh(1) ;
char a = b.doh('a') ;
//b.doh('a') ;
b.doh(1.0f) ;
b.doh(new Milhouse()) ;
System.out.println("---------------") ;
}
}
----------------------------------------
file end .
编绎时"char a = b.doh('a') ;"这一句报错!
我觉得可能是 doh('a')不确定是调用 派生类的doh(float)方法还是调用基类的
doh(char)的方法。
1.不知道我上面的推测是否正确?
2.现在类的定义中不存在问题!只是调用报错,那么我要想分别调用这两个方法分别如何实现?
问题点数:0、回复次数:15Top
1 楼JCC0128(代码写到手抽筋)回复于 2003-12-03 03:04:16 得分 0
补充:问题2没说清楚。
2.声明了Bart型对象后,如何分别调用基类Homer的doc(char)方法,与Bart的doc(float)方法?Top
2 楼javafaq2004(I will survive)回复于 2003-12-03 05:57:27 得分 0
是你用的编辑器的错误!你是用的Eclipse吧!
跟你说了多少遍了,不要使用垃圾!
我是木猪。Top
3 楼JCC0128(代码写到手抽筋)回复于 2003-12-03 06:08:04 得分 0
本人确实用的eclipse 2.1.1,,会有这么大的bug????深刻怀疑中!Top
4 楼javafaq2004(I will survive)回复于 2003-12-03 06:49:45 得分 0
用记事本试试。Top
5 楼wobelisk()回复于 2003-12-03 07:44:50 得分 0
Eclipse is stupid like this?Top
6 楼wobelisk()回复于 2003-12-03 09:28:05 得分 0
not the bug of eclipse.Top
7 楼wobelisk()回复于 2003-12-03 09:32:14 得分 0
j2sdk1.4.2: success
j2sdk1.4.1_01: fail
j2sdk1.4.0_01: fail
1.3 I think will fail
I don't know 1.2 and 1.1Top
8 楼javafaq2004(I will survive)回复于 2003-12-03 10:32:08 得分 0
凡是数字类型都会这样。Top
9 楼ratinwander(开往天堂的地铁)回复于 2003-12-03 10:32:59 得分 0
子类继承父类以后,如重写父类中的非构造函数,则认为将其覆盖,即,子类实例将看不见父类同名函数,同一个类中函数重写才叫重载,上边例子将Bart类的函数注释掉,就可以调用父类的函数了,^_^Top
10 楼javafaq2004(I will survive)回复于 2003-12-03 10:37:23 得分 0
怎么没人相信Eclipse垃圾?它默认用的是1.3,改改也只是1.4。Top
11 楼JCC0128(代码写到手抽筋)回复于 2003-12-03 10:48:32 得分 0
谢谢各位回复!~
to wobelisk:
我现在用的JSDK的版本是: j2sdk1.4.2_01
to 木猪:
eclipse好像本身不带j2sdk吧?我装ECLIPSE的时候它说前提就是要装j2sdk的,也就是说是分别安装的呀
我现在试试看记事本+cmd 行不行~
Top
12 楼yjava(java初学者)回复于 2003-12-03 10:56:28 得分 0
Bart b = new Bart() ;改为
Homer b = new Bart() ;Top
13 楼JCC0128(代码写到手抽筋)回复于 2003-12-03 10:59:56 得分 0
eclipse 2.1.1 + j2sdk1.4.2_01
cmd下可以编绎通 过该源文件!运行也没问题。
而eclipse则不能编绎保存。
eclipse确实有bug!!!!!!!!
eclipse确实有bug!!!!!!!!
不过用它很方便了,机器还跑的动,暂时还是会继续用它~
to javafaq2004(我还健在) :
u a right~~~
Top
14 楼javafaq2004(I will survive)回复于 2003-12-03 13:33:53 得分 0
用的是IBM JRE1.4。Top
15 楼yjava(java初学者)回复于 2003-12-07 15:06:06 得分 0
原程序看来没问题了啊???Top




