- 子类的方法的形参列表,方法名称要和父类方法的形参列表,方法名称完全一样
//父类
public class A {
public void person(){
System.out.println("父类方法");
}
public void person(String name){
System.out.println("父类有形参的方法");
}
}
//子类
public class B extends A{
public void person(){
System.out.println("子类方法");
}
public void person(String name){
System.out.println("子类有形参的方法");
}
}
- 子类方法的返回类型和父类方法的返回类型一样,或者是父类返回类型的子类
//父类
public class A {
public Object person(){
System.out.println("父类方法");
return null;
}
}
//子类
public class B extends A{
public String person(){
System.out.println("子类方法");
return null;
}
}
- 子类方法不能缩小父类方法的访问权限
//父类
//public>protected>默认>private 下面这个父类和子类是报错的
public class A {
protected Object person(){
System.out.println("父类方法");
return null;
}
}
//子类
public class B extends A{
String person(){
System.out.println("子类方法");
return null;
}
}
方法重载(overload)
在本类中
方法名必须一样
形参列表的类型、个数或者顺序至少有一个不同
返回类型无要求
修饰符无要求;
方法重写(override)
在父子类中
方法名必须一样,相同
子类重写的方法,返回类型和父类返回类型一致,或者是父类返回类型的子类(object和String)
子类方法不能缩小父类方法的访问范围
public>protected>默认>private