方法重写规则
方法名和参数一致
public abstract class A {
public abstract Object doSomething(String string);
}
public class B extends A {
@Override
public Object doSomething(String string) {
return null;
}
}
子类权限修饰符大于等于父类
public abstract class A {
protected abstract Object doSomething(String string);
}
public class B extends A {
@Override
public Object doSomething(String string) {
return null;
}
}
子类返回值小于等于父类,Java 7以上
public abstract class A {
public abstract Object doSomething(String string);
}
public class B extends A {
@Override
public String doSomething(String string) {
return null;
}
}
子类抛异常类型小于等于父类,或者子类不抛异常
public abstract class A {
public abstract Object doSomething(String string) throws Exception;
}
public class B extends A {
@Override
public String doSomething(String string) throws IOException {
return null;
}
}
public class B extends A {
@Override
public String doSomething(String string) {
return null;
}
}