不完全同意楼上的观点
class Demo{
int show(int a,int b){return 0;}
}
class Demo1 extends Demo{
double show(int a,int b)
{return 0;}
}
这个就不报错了吗?
不是这样的。
你没有明白重载的意思
什么叫重载
就是当函数名相同而函数参数个数或者参数类型不同的时候才叫重载
你的子类继承了父类,相当于在子类中定义了一个
int show(int a,int b){return 0;}
还能再子类中定义double show(int a,int b)???
这不叫重载。。
只有满足了重载。你才能正确
但是当你覆盖的时候,正如一楼所说
覆盖的条件是 :函数名 ,参数类型和个数 ,返回值类型必须一样,
这才叫覆盖,你那根本 就不是覆盖。
当覆盖之后,权限不能低于父类的权限 ,子类方法不能抛出比父类更多的异常 .
class Demo{
public int show(int a,int b){return 0;}
}
class Demo1 extends Demo
{
private int show(int a,int b)
{return 0;
}
为错误 |