√ JavaSE - 05.怎么重写父类的方法(卷1 P155)

  1. 父类被重写的方法和子类重写的方法必须都是非static的。
  2. 对于访问修饰符,子类方法不能小于父类方法;若父类方法是private的,则子类不能重写该方法。
  3. 对于方法名形参列表,子类方法必须与父类方法相同。
  4. 对于返回值类型,若父类方法是void或基本数据类型,则子类方法必须与父类方法相同;若父类方法是引用数据类型,则子类方法只能返回与父类方法相同的类型或其子类。
  5. 对于异常,若父类方法抛出异常,则子类方法只能抛出与父类方法相同的异常或其子类。
public class OverrideMethod {
    public static void main(String[] args) {
        System.out.println("-----父类对象-----");
        Test1 test1 = new Test1();
        test1.print1();
        System.out.println(test1.print2(1));
        System.out.println(test1.print3("test1"));

        System.out.println("-----子类对象-----");
        Test1 test2 = new Test2();
        test2.print1();
        System.out.println(test2.print2(2));
        System.out.println(test2.print3("test2"));
    }
}

class Test1 {
    void print1() {
        System.out.println("Test1.print1");
    }

    protected int print2(int value) {
        System.out.println("Test1.print2");
        return value;
    }

    public Object print3(String str) throws RuntimeException {
        System.out.println("Test1.print3");
        return str;
    }
}

class Test2 extends Test1 {
    @Override
    protected void print1() {
        System.out.println("Test2.print1");
    }

    @Override
    public int print2(int value) {
        System.out.println("Test2.print2");
        return value;
    }

    @Override
    public String print3(String str) throws IndexOutOfBoundsException {
        System.out.println("Test2.print3");
        return str;
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值