《Java编程思想》笔记09-接口
优先使用类,而不是接口,除非有充分的必要。
接口:可以是 public
或 default
只具有包访问权限。
字段:必 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" 转载请保留原文链接及作者。