首页 > 代码库 > java子接口方法覆盖父接口方法的思考
java子接口方法覆盖父接口方法的思考
接口List中继承接口Collection,接口Collection中存在size()方法,在接口List中又覆盖size()方法,意义何在?(覆盖了很多方法,见下图)
public interface List<E> extends Collection<E>
1.父接口和子接口都是抽象方法(未实现),子类没有改变父类的该方法,在功能层面的确是没有意义的。
2. 子类方法不能缩小所覆盖方法的访问权限和,但是接口里面的方法只能是public,所以子接口方法覆盖父接口方法不能改变方法的作用域。
子类方法不能抛出比所覆盖方法更多的异常,所以子接口方法覆盖父接口方法不能改变方法可以改变方法的异常抛出。
3.子接口方法覆盖父接口方法更多是考虑到类的易读性,提醒使用者此处有这个方法。
interface A { void method() throws Exception;}interface B extends A { void method(); //这里没有抛出异常}public class C implements B { public static void main(String[] args) { A a=new C(); B b=new C(); //捕获A类method方法的异常 try { a.method(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } b.method(); } @Override public void method() { System.out.println("method"); }}
java子接口方法覆盖父接口方法的思考
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。