目录
方法重写(Override):
方法重写也叫方法覆盖,需要满足下面的条件
1.子类的方法的参数,方法名称,要和父类方法的参数,方法名称完全一样。
2.子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类
3.子类方法不能缩小父类方法的访问权限
public class Dog extends Animal {
public void cry() {
System.out.println("小狗汪汪叫...");
}
// private void cry() {
// System.out.println("小狗汪汪叫...");
// }
public String m1() {
return null;
}
public BBB m3() {
return null;
}
public void eat() {
}
}
class AAA {
}
class BBB extends AAA {
}
class Animal {
public Animal() {
System.out.println("6666");
}
public void cry() {
System.out.println("动物叫唤...");
}
public Object m1() {
return null;
}
public AAA m3() {
return null;
}
protected void eat() {
}
}
方法重载(Overload):
重载(overloading) 是在一个类里面,方法名字相同,而参数(类型)不同。返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的形参列表。
最常用的地方就是构造器的重载。
重载和重写的比较
名称 | 发生范围 | 方法名 | 形参列表 | 返回类型 | 修饰符 |
重载(overload) | 本类 | 必须一样 | 类型、个数或者顺序字少有一个不同 | 无要求 | 无要求 |
重写(override) | 父子类 | 必须一样 | 相同 | 子类重写的方法,返回的类型和父类返回的类型一致,或者是其子类 | 子类方法不能缩小父类方法的访问权限 |