方法重写:子类重写父类方法(两同两小一大)
1、两同(方法签名相同)
1)方法名相同
2)参数列表相同
2、两小
1)子类方法返回值类型跟父类返回值类型相同或者父类返回值子类型
2)子类方法抛出异常类型跟父类抛出异常类型相同或者父类异常子类型
3、一大
1)子类方法访问修饰符跟父类方法访问修饰符相同或者比父类方法更大权限访问修饰符
方法重载:同一类中方法名相同,方法参数里列表不同(参数个数,参数类型,参数顺序)
1、构造器重载
2、方法重载
方法重载只限定方法名相同,参数列表不同,对于访问修饰符,返回值,方法抛出异常可以不相同
代码测试
父类
public class FatherClass {
private String name;
public FatherClass() {
System.out.println("Father's default constructor...");
}
public FatherClass(String name) {
System.out.println("My name is " + name);
}
protected SonClass info(int a, String b) throws RuntimeException {
return new SonClass();
}
}
子类
public class SonClass extends FatherClass {
private String name;
public SonClass() {
System.out.println("SonClass's default constructor ...");
}
public SonClass(String name) {
System.out.println("son's name is " + name);
}
@Override
public SonClass info(int a, String c) throws RuntimeException {
return new SonClass();
}
public FatherClass call(int a, int b) throws Exception {
return new FatherClass();
}
private SonClass call(int a, int b, int c) throws RuntimeException {
return new SonClass();
}
}
class ClassTest {
public static void main(String[] args) {
new SonClass("tom");
}
}