java基础:方法重写

方法重写

  • 重写都是方法的重写,和属性无关
  • 父类的引用指向了子类
  • 方法的调用只和左边,定义的数据类型有关
  • //Override 重写
    @Override//注解:有功能的注释
    public void test() {
    System.out.println(“A==test()”);
    • 静态方法和非静态方法区别很大
    • 重写的关键词只能是公有的(public),不能是私有的(private)
    • 非静态方法可以重写
    • 子父类才可以重写
  • 需要有继承关系,子类重写父类的方法。
  • 注意:1、方法名必须相同
    2、参数列表必须相同
    3、修饰符可以扩大,不能缩小:public>protected>Default>private
    4、抛出的异常,范围可以被缩小,但不能扩大 ClassNotFoundException—>Exception(大)
    5、子类的方法必须和父类的一致,方法体不同。
  • 为什么需要重写?
    1、父类的功能,子类不一定需要,或者不一定满足。
    Alt + Insert: Override
package com.oop.Demo05;
import com.oop.Demo05.Student;
public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        //student.say();
        // student.test("黄五");
        //student.test1();
        //方法的调用只和左边,定义的数据类型有关
        A a = new A();
        a.test();//A
        //父类的引用指向了子类
        B b = new A();
        b.test(); //B

    }
}
package com.oop.Demo05;
//重写都是方法的重写,和属性无关
public class B {
    public  void test(){
        System.out.println("B==test()");
    }
}

package com.oop.Demo05;

public class A extends B{
    //Override 重写
    @Override//注解:有功能的注释
    public void test() {
        System.out.println("A==test()");
    }
}

你可能感兴趣的:(java基础,java,servlet,jvm)