17.方法重写

方法重写

为什么要重写?

  • 父类的功能,子类不一定需要,或子类需要的更多!

特点:

  • 子类和父类需要有继承关系
  • 重写是对父类可访问的方法的重写,和属性无关
  • 声明为 final 的方法不能被重写
  • 声明为 static 的方法不能被重写,但是能够被再次声明
  • 修饰符的范围可以扩大但不能缩小。(public > protected > Default > private)
  • 抛出的异常范围可以被缩小,但不能扩大
  • 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类。(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)
  • 方法名、返回值、形参必须相同,方法体不同。(外壳不变,核心重写

例:

package com.wnaoii.oop.Demo05;

public class Person {
    public void say() {
        System.out.println("Person会说话!");
    }
}
package com.wnaoii.oop.Demo05;

public class A extends Person {
    @Override
    public void say() {
        System.out.println("A不但会说,还会唱、跳、Rep!");
    }
}
package com.wnaoii.oop;

import com.wnaoii.oop.Demo05.Person;
import com.wnaoii.oop.Demo05.A;

public class Application {
    public static void main(String[] args) {

        Person person = new Person();
        person.say();

        A a = new A();
        a.say();
    }
}

输出:

Person会说话!
A不但会说,还会唱、跳、Rep!
上一篇:(六)BRIEF特征点描述算法


下一篇:java-支持它的CharSequence实现上的indexOf