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 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中有个静态的同样定义的方法(所谓同样定义是指名字、参数的个数和类型、返回类型
都相同),而父类中的静态方法是不允许被重写的。
为什么编译器一定要把第一个方法看成是准备重写的方法,编译提示:getNum() in Sub cannot override getNum() in Super; attempting to use incompatible return type
第2个和第4个却不看成是要重写父类的方法呢?
分先给你了哈~~~
为什么编译器一定要把第一个方法看成是准备重写的方法,编译提示:getNum() in Sub cannot override getNum() in Super; attempting to use incompatible return type
第2个和第4个却不看成是要重写父类的方法呢?
分先给你了哈~~~
没有你说的问题。