《Java编程思想》笔记09-接口

  1. 组合接口时的命名冲突

优先使用类,而不是接口,除非有充分的必要。

接口:可以是 publicdefault 只具有包访问权限。

字段:必 public static final
接口中定义的字段默认都是静态常量。哪怕没有显示声明。

方法:必 public abstract
接口中所有的方法都是 public abstract 的。哪怕我们没有显式地写出来。

组合接口时的命名冲突

//: interfaces/InterfaceCollision.java
package interfaces;

interface I1 { void f(); }
interface I2 { int f(int i); }
interface I3 { int f(); }
class C { public int f() { return 1; } }

class C2 implements I1, I2 {
    public void f() {}

    public int f(int i) {return 1;} // overloaded
}

class C3 extends C implements I2 {
    public int f(int i) {return 1;} // overloaded
}

class C4 extends C implements I3 {
    // Identical, no problem:
    public int f() {return 1;}
}
// Methods differ only by return type:
//! class C5 extends C implements I1 {}
//! interface I4 extends I1, I3 {} ///:~

既然允许一个类同时继承多个接口,接口的方法名称很容易重复。Java 以方法名和参数来区分不同方法。只要有相同的方法名和参数,就被认为是同一个方法。

所以,最好根本不要让不同接口里,有同名的方法



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com

文章标题:《Java编程思想》笔记09-接口

文章字数:275

本文作者:Bin

发布时间:2018-03-27, 22:48:51

最后更新:2019-08-06, 00:46:42

原始链接:http://coolview.github.io/2018/03/27/Java%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3/%E3%80%8AJava%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3%E3%80%8B%E7%AC%94%E8%AE%B009-%E6%8E%A5%E5%8F%A3/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录