子类重写父类的方法。
1.方法名称相同
2.方法参数相同
3.返回类型必须与父方法返回类型相同或为其子类
注意8大基本类型没有子类(boolean、int、short、char、byte、long、double、float) 正确:
public class TestSuper {
public abstract class A {
public abstract Object get();
}
public class B extends A {
//正确. 返回类型String 为父亲返回类型Object的子类
public String get() {
return "";
}
}
}
错误:
public class TestSuper {
public abstract class A {
public abstract String get();
}
public class B extends A {
//错误. 返回类型Object 不是父亲返回类型String的子类
public Object get() {
return new Object();
}
}
}
4.子方法的访问权限要比父方法访问权限大
正确:
public class TestSuper {
public abstract class A {
protected abstract String get();
}
public class B extends A {
//正确. 访问权限扩大了
public String get() {
return "";
}
}
}
错误:
public class TestSuper {
public abstract class A {
protected abstract String get();
}
public class B extends A {
//错误. 访问权限缩小了
private String get() {
return "";
}
}
}