Java中,派生类继承基类后,对获取到的来自基类的方法进行重写,是实现类多态的重要基础之一。关于类的多态将在后面的章节中介绍。
方法重写与方法重载的重要区别在于方法重写是基于类的继承机制,是在两个类之间,而方法重载则是在同一个类中进行的。
-
-
-
返回值的类型应当与基类的相同或协变兼容(协变:在继承关系中,将一个类型替换为其子类型);
-
方法的访问权限不能比基类的更严格,比如基类的若为public,则派生类的就不可以为private或protected;
-
-
一般使用@Override来标注重写(可以不写);
-
static的方法、final的方法和private的方法不可被重写;
public class Test{ public static void main(String[] args){ Apple apple = new Apple(); apple.say(); apple.show();
}}class Fruits{ public void say(){ System.out.println("这是一个水果"); } public void show(){ System.out.println("这可能是个西瓜"); }}class Apple extends Fruits{ @Override public void say(){ System.out.println("这是一个苹果"); }}