站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题帮忙看下

帮忙看下

摘要: 帮忙看下


class Super
{
public static float getNum()
{
return 3.0f;
}
}

class Sub extends Super
{
     public void getNum(int i)
{

}

     public void getNum(double d){
}

     public float getNum()
{
return 4.0f;
}

     public double getNum(float d)
{
return 4.0d;
}
}

Sub类中的哪个方法单独存在时定义是合法的啊??  帮忙分析下


除了
public float getNum()
{
return 4.0f;
}
这个方法外,都是合法的。

因为在Super中有个静态的同样定义的方法(所谓同样定义是指名字、参数的个数和类型、返回类型
都相同),而父类中的静态方法是不允许被重写的。


再麻烦下  如果把Super 前面的static 去掉  为什么就是第一个方法是不合法的定义了呢
为什么编译器一定要把第一个方法看成是准备重写的方法,编译提示:getNum() in Sub cannot override getNum() in Super; attempting to use incompatible return type
第2个和第4个却不看成是要重写父类的方法呢?
分先给你了哈~~~

你自己在子类方法前加了一串类似空格的东西
把前面的类似空格的东西删了就好了


↑返回目录
前一篇: jtable 中哪个方法使表格不能被编辑,哪个方法使一次只能选择一行
后一篇: 这段代码编译能通过么??