一、概念
当子类出现和父类一模一样的函数时,当子类对象调用该函数时会执行子类的函数,这叫做重写(覆盖)。
二、应用
当子类具备和父类相同的功能,而功能的内容不同时,这时没必要定义新的功能了,可以直接重写(覆盖)即可。
三、注意
①子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖。
②静态只能覆盖静态。
③重载:只看同名函数的参数列表
重写:子父类方法要一模一样(方法返回值类型,方法名,参数列表相同,权限修饰符可以不同,但是必须保证第①条)
四、案例
//定义一个Animal类描述动物的共性
class Animal {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void eat(){
System.out.println("动物吃饭....");
}
protected void sound(){
System.out.println("动物的声音....");
}
}
//Cat类继承Animal类
class Cat extends Animal {
public void eat(){ //重写父类eat()方法
System.out.println("猫吃鱼");
}
public void sound(){ //重写父类sound()方法
System.out.println("喵喵喵");
}
public void showCat(){
System.out.println("I am a cat");
}
}