方法的重写

不多说,直接上代码

 

package com.xuyifan.oop.demo06;

/**
 * @author xyf
 * @create 2020-08-14-16:29
 */
public class Application {
    public static void main(String[] args) {
        //方法的调用只和左边定义的类型有关
        A a=new A();
        a.test();
        //父类的调用指向了子类
        B b=new A();
        b.test();
        B c=new B(); 
        c.test();

    }
}

B类

package com.xuyifan.oop.demo06;

/**
 * @author xyf
 * @create 2020-08-14-16:29
 */
public class B {
    public void test(){
        System.out.println("B");
    }

}

A类

package com.xuyifan.oop.demo06;

/**
 * @author xyf
 * @create 2020-08-14-16:29
 */


public class A extends B {
    String name;
    @Override //注解,编译器会检查,也方便自己以后看

    public void test() {
        System.out.println("A");
    }
}

运行输出

A

A

B

重写需要有继承关系,只针对方法,而且是子类重写父类

注意

  1. 方法名必须相同,不同的只是方法体
  2. 参数列表必须相同,相同的返回值类型(虽然可以返回子类,但是不建议)
  3. 修饰符范围可以扩大,父类的private方法可以重写为public的子类方法

那么思考为什么需要重写

最简单的就是,儿子像父亲但不是父亲,父类的功能,子类不一定需要也不一定满足

posted @ 2020-08-14 16:51  jueqishizhe  阅读(68)  评论(0)    收藏  举报