31、Java基础之方法的重写

方法重写

注意:构造方法不能重写

  • 重写:需要有继承关系,子类重写父类的方法!
    1.方法名必须相同
    2.参数列表列表必须相同
    3.修饰符:范围可以扩大但不能缩小: public > Protected > Default > private
    4.抛出的异常: 范围,可以被缩小,但不能扩大; ClassNotFoundException > Exception(大)
  • 重写,子类的方法和父类必要一致;方法体不同!
  • 为什么需要重写:
    父类的功能,子类不一定需要,或者不一定满足!
  • Alt +Insert ; 快速添加 override;
  • 重写实例
    父类
public class FangFaChongXieFather {
    public static void test(){
        System.out.println("父类的静态方法");
    }

    public void test1(){
        System.out.println("父类的非静态方法");
    }
}

子类

public class FangFaCongXieSon extends FangFaChongXieFather{
    public static void test(){
        System.out.println("子类的静态方法");
    }
//    public void test1(){
//        System.out.println("子类的非静态方法");
//    }

    /**
     *  Override 重写
     *  @Override  注解  有功能的注释
     *
     *  使用  Alt + insert 默认生成的是 super.test1(); 就是默认重写父类的方法
     */
    @Override
    public void test1() {
//        super.test1();
        System.out.println("子类的非静态方法");
    }
}

main方法

public class C6FangFaDeChongXie {
    public static void main(String[] args) {
        /**
         *  静态方法的调用  只和左边有关 ,也就是只和声明的对象有关(不会重写)
         *
         *  非静态方法  重写之后,父类的引用指向子类的方法,
         *				就可以调用子类重写后的方法,但不能直接调用子类独有的方法
         */

        FangFaChongXieFather fFCXFather = new FangFaChongXieFather();
        fFCXFather.test();      //父类的静态方法
        fFCXFather.test1();     //父类的非静态方法
        System.out.println("========================");
        /**
         *  父类的引用指向了子类的方法
         */
        FangFaChongXieFather fFCXFather1 = new FangFaCongXieSon();
        fFCXFather1.test();      //父类的静态方法
        fFCXFather1.test1();      //子类的非静态方法


        System.out.println("========================");
        FangFaCongXieSon fFCXSon = new FangFaCongXieSon();
        fFCXSon.test();      //子类的静态方法
        fFCXSon.test1();      //子类的非静态方法


        /**
         *     子类的引用  无法指向父类
         */
//        FangFaCongXieSon fFCXSon1 = new FangFaChongXieFather();
//        fFCXSon1.test();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值