重写的条件
重写的作用在于:
- 能够区分方法
- 通过方法名找方法
- 通过参数列表确定方法
重写的发生条件:
基本三个条件:
发生继承
方法名同名
参数列表一模一样(顺序 个数 类型)
其他的要求:
返回值为引用类型(类类型)时:
子类的返回值类型需要小于或等于父类的返回值类型
(子类重写父类方法时,返回值必须与父类返回值类型相同或者为父类的子类)
返回值为基本数据类型是:
要求完全一致
public class Test01 {
public static void main(String[] args) {
}
}
class F{
F fun(F s) {//可以和子类参数随机更改为F f;F s;S f; S s;体验
System.out.println(1/0);
return null;
}
}
class S extends F{
@Override
S fun(S s){//这里会报异常 可以和父类参数f
return null;
}
}
2.子类的修饰符需要大于父类的修饰符(父类的修饰符不能是private)
3.子类抛出的异常小于等于父类抛出的异常(可以认为任意一个方法都会对外抛出运行异常)
public class Test01 {
public static void main(String[] args) {
}
}
class F{
F fun(F s)throws Exception {
System.out.println(1/0);
return null;
}
}
class S extends F{
@Override
public S fun(F s)throws NullPointerException{
return null;
}
class S1 extends F{
@Override
public S1 fun(F s1)throws NullPointerException{
return null;
}
}