方法的重写(overwrite/override)

定义:指子类与父类的方法返回类型一样,方法名称一样、参数一样,这样我们可以说子类与父类的方法构成了重写关系。方法的重写:又叫做覆盖或覆写

实例理解:比如说定义一个动物类,里面有一个方法是动物sing,而有一个猫类继承了动物类,但它不想显示动物在sing,而是要表明自己是猫在sing,这时我们可以重写父类的方法,把父类的方法覆盖掉。这就是子类对父类的重写。

重写的作用:结合抽象类。

注意:

1、         方法重写与重载之间的关系:重载发生在一个类内部的两个或多个方法,而重写是发生在父类与子类之间。

2、         被重写的方法不能拥有比父类更为严格的访问权限,例如如果父类定义方法为默认的,则子类重写的方法不能为private的,可以为默认的或public的。

 

例如看以下代码:

public class MethodOverride {

   public static void main(String[] args) {

     child c = new child();

     c.print();

   }

}

class child extends parent {

   public void print() {

     System.out.println("child");

   }

}

class parent {

   public void print() {

     System.out.println("parent");

   }

}

子类child与父类parent构成重写,最后是子类覆盖了父类,将输出child,而不会输出parent。要调用父类的方法,使其输出parent,可用super.方法名()来调用,如本程序可用super.print(),此时的super位置并不要放在第一行,例如:

class child extends parent {

   public void print() {

     super.print();

     System.out.println("child");

      super.print();//则将会输出:child

                                      parent

   }

}

程序将输出:parent

           Child