java面试方法的覆盖

笔试代码如下:

public class Test {

    public static void main(String[] args) throws Exception{
        Parent p = new Child();
        p.output();
    }
}


class Parent {
    public void output() throws NullPointerException {
    }
}

class Child extends Parent{

    public void output() throws  Exception{
    }
}

问:是否能够编译通过?

答:编译通不过。需要知道如下几个知识点:

  • 方法覆盖(override)是发生在子类与父类之间的
  • 能够实现方法覆盖的条件是:子类中的方法与父类中的方法有相同的方法名称,相同的参数列表的情况下,子类中的方法的访问级别不能低于父类中该方法的访问级别,子类中的方法抛出的异常范围不能大于父类中该方法抛出的异常范围,(注:子类可以不抛出异常),子类中的返回值要与父类中该方法的返回值相同或者是它的子类,满足上述条件可以实现方法覆盖。

补充知识点:

异常继承体系如下图:

exception.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,963评论 18 399
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 5,801评论 0 10
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 9,813评论 1 44
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,940评论 0 62
  • 一番折腾 我就这样在凌晨的夜里醒着 空气在叶子里打着旋 来到我的皮肤 他的脸就在我面前 我想听听他的呼吸 我想看看...
    假的稻草人阅读 1,163评论 0 2