java override方法_Java中方法的重写(override)

2018/6/8 Java中方法的重写(override)

public class Parent{

public void ou tput()throws NullPointerException{

System.out.println("parent");

}

}

public class Child extends Parent{

public void output() throws E xception{

System.out.println("child");

}

}

public class OverrideTest {

public static void mai n(String[] args) {

Parent p = new Child();

p.output();

}

}

问题:上述程序能编译通过吗?如果不能,请说明理由。如果能编译通过,那么能执行成功吗?如

果不能执行成功,请说明理由。如果能执行成功,那么程序执行的结果是什么?

解答:上述程序无法编译通过。分析:此为考察java中方法重写的 要求,由于父类抛出的异常为NullPointerException,而子类抛出的

异常为Excetpion, 违背了方法重写,子类中方法抛出的异常范围不能大于父类中方法抛出的异常的

范围的原则,所以编译不能通过。总 结:关于java中方法重写(override)的要求:

1、子类中的方法与父类中的方法有相同的 返回类型

2、子类中的方法与父类中的方法有相同的方法名称

3、子类中的方法与父类中的方法有相同的参数列表

4、子类中的方法的访问级别不能低于父类中该方法 的访问级别(举例:父类方法的级别是

protected,那么子类重写该方法,其级别必须是protected或者public,一定和父类的访问级别相

同或者更宽,否则编译无法通过)

5、子类中方法抛出的异常范围 不能大于父类中方法抛出的异常的范围(子类可以不抛出异常也满

足该原则,即是说父类抛出异常,子类不抛出异常,编译通过没问题。)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值