java 中方法的重写

1,新建Application类,作为程序的入口

package oop.demo05;

//继承
public class Application {
    public static void main(String[] args) {
/**
 * 静态方法与非静态方法区别很大
 *      静态方法:方法的调用只与左边定义的数据 类型,有关
 *      非静态方法: 重写;
 */
        System.out.println("============方法的重写============");
        A a = new A();
        a.test(); //A===>test()
        a.test2();//B===>test2()
//        父类的引用指向了子类;B 指向 A
        B b = new A();
        b.test();//B===>test()
        a.test2();//B===>test2() //子类重写父类的方法
    }
}

2,新建A类 (A类继承B类)

package oop.demo05;

import javax.swing.plaf.PanelUI;

// 继承B类
public class A extends  B{
    public  static void test(){
        System.out.println("A===>test()");
    }

// Override 重写
    @Override
    public void test2() {
//        super.test2(); //默认调用父类
//        可重写自己的方法
        System.out.println("B===>test2()");
    }
}

3,新建B类

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

    public   void test2(){
        System.out.println("B===>test2()");
    }

}

4,方法的重写 笔记

## 重写
    需要有继承关系,子类重写父类的方法
        1,方法名必须相同
        2,参数列表必须相同(如果不同的话,就变成重载了)
        3,修饰符:范围可以扩大,但不能被缩小 public>protected>default>private
        4,抛出的异常:范围可以被缩小,但不能被扩大
    重写,子类与父类的方法名必须要一致,方法体不同

5,运行结果

原文地址:https://www.cnblogs.com/d534/p/15093873.html