Java 程序设计基础(第5章第5节)|接口
一、接口基础语法
接口使用interface关键字定义,类使用implements关键字实现接口。
// 定义接口
interface Play {
// 抽象方法
void game();
}
// 类实现接口
class Student implements Play {
@Override
public void game() {
System.out.println("学生课余进行游戏");
}
}
二、接口成员规则(Java7基础)
1. 接口中的变量默认是public static final常量,必须初始化赋值;
2. 接口中的抽象方法默认是public abstract,只能被public实现重写;
3. 接口不能实例化,没有构造方法。
三、核心优势:多实现
Java类只能单继承一个父类,但一个类可以同时implements多个接口,突破单继承限制:
interface Run {}
interface Swim {}
// 同时实现两个接口
class Person implements Run, Swim {
@Override
public void run() {}
@Override
public void swim() {}
}
四、接口之间可以多继承
接口和接口之间用extends,支持多继承:
interface A {}
interface B {}
interface C extends A,B {}
五、Java8接口新特性:默认方法、静态方法
1. 默认方法(default)
有默认方法体,实现类可以不重写;多个接口存在同名默认方法时,实现类必须手动重写消除冲突。
interface TestInterface {
default void hello() {
System.out.println("接口默认方法");
}
}
2. 静态方法(static)
接口静态方法只能用接口名.静态方法()调用,不能用实现类对象调用。
六、接口多实现冲突解决方案
当一个类实现多个接口,多个接口存在同名方法:
1. 都是抽象方法:只需要重写一次即可;
2. 多个接口存在同名default默认方法:实现类必须强制重写该方法。
七、经典面试题:接口 vs 抽象类核心区别
1. 关键字:抽象类abstract class,接口interface;
2. 构造方法:抽象类有构造方法,接口无构造;
3. 继承/实现:类只能单继承抽象类;类可以多实现接口;
4. 成员变量:抽象类可以普通变量、常量;接口只能常量;
5. 设计思想:抽象类是「模板抽取」,描述一类事物共性;接口是「行为规范」,描述能力。
八、面向接口编程开发意义
程序依赖接口而非具体实现类,后续更换实现类不需要改动上层调用代码,极大降低耦合度,框架分层、插件化开发全部依托接口实现。
更多推荐


所有评论(0)