1. 什么是Interface(接口)
有时必须从几个类中派生出一个子类,继承他们所有的属性和方法。
但是,Java 不支持多重继承,使用接口实现多重继承的效果。
接口是抽象方法和常量值的定义的集合。
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
一个类可以实现多个接口,接口也可以继承其他接口。
1 | public class ClassName implements Interface1, Interface2 { ... } |
2. 接口的特点
- 用
interface
来定义; - 接口中所有的成员变量都默认是由 public static final 修饰的;
- 接口中所有的方法都默认是由 public abstract 修饰的;
- 接口没有构造器;
- 接口采用多层继承机制。
3. 接口定义举例
1 | public interface Runner { |
1 | public interface Runner { |
上面两段代码完全等价。
4. 接口的应用举例
_1.png)
1 | public abstract class Person { |
5. Interface的一些要点
实现接口的类中必须提供接口中所有方法的具体实现,否则仍未抽象类。
接口的主用用途就是被实现类实现(面向接口编程)。
与继承关系类似,接口与实现类之间存在多态性。
定义 Java 类的语法格式,先写 extends 后写 implements。
1
<modifier> class <name> [extends <superclass>] [implements <interface1> [, <interface2>, ...]] { ... }
接口类引用变量可以接收实现类的对象。
与父子类关系类似,接口类与实现类之间存在多态性。
1
Cooking c = new SCTeacher(); // 与父子类多态类似,c 只可访问 fry() 方法
接口类也可以使用 extends 继承其他接口。
同一个
.class
文件中,只可以有一个 public 类或接口。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GuKaifeng's Blog!
评论(延迟加载 / 需要可访问 GitHub Issues)