java的方法重写

子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。

方法的重写需要符合下面的三个要点:

  1.“==”: 方法名、形参列表相同。

  2.“≤”:返回值类型和声明异常类型,子类小于等于父类。

  3.“≥”: 访问权限,子类大于等于父类。

一、用IDEA快捷键 Alt+Insert 重写父类方法

public class TestOverrider {
    public static void main(String[] args) {
    //定义三个对象,分别对应 Animal,cat,dog
        Animal a1 = new Animal();
        cat c1 = new cat();
        dog d1 = new dog();
        a1.sleep();
        a1.study();
        c1.sleep();
        c1.study();
        d1.sleep();
        d1.study();
    }
    static class Animal{
        public void sleep(){
            System.out.println("休息中,勿扰");
        }
        public void study(){
            System.out.println("学习中,勿扰");
        }
    }
    static class cat extends Animal{
        @Override
        public void sleep() {
            super.sleep();
        }
    }
    static class dog extends Animal{
        @Override
        public void sleep() {
            super.sleep();
        }

        @Override
        public void study() {
            super.study();
        }
    }
}

运行结果:

休息中,勿扰
学习中,勿扰
休息中,勿扰
学习中,勿扰
休息中,勿扰
学习中,勿扰

二、用普通方法重写父类方法

public class TestOverride02 {
    public static void main(String[] args) {
        //定义三个对象,分别对应 Animal,cat,dog
        TestOverrider.Animal a1 = new TestOverrider.Animal();
        TestOverrider.cat c1 = new TestOverrider.cat();
        TestOverrider.dog d1 = new TestOverrider.dog();
        a1.sleep();
        a1.study();
        c1.sleep();
        c1.study();
        d1.sleep();
        d1.study();
    }
    class Animal {
        public void sleep() {
            System.out.println("休息中,勿扰");
        }

        public void study() {
            System.out.println("学习中,勿扰");
        }
    }
    class Cat extends Animal{
        public void sleep() {
            System.out.println("休息中,勿扰");
        }
    }
    class Dog extends  Animal{

        public void study() {
            System.out.println("学习中,勿扰");
        }
    }
}

运行结果:

休息中,勿扰
学习中,勿扰
休息中,勿扰
学习中,勿扰
休息中,勿扰
学习中,勿扰

两种方法实现效果相同!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值