【Java 入门 Day14】 接口篇(下):接口的进阶玩法,多继承、多实现全搞懂!
·
家人们!上一篇咱们唠了接口的基础用法,今天必须把接口的进阶玩法给盘明白!接口为啥这么好用?全靠它的多继承、多实现和回调机制,今天咱们就用唠嗑的方式,把这些知识点讲得明明白白!
三、接口的继承性:接口也能 “开枝散叶”,支持多继承!
Java 里的类只能单继承,但接口不一样,接口可以多继承!就像一个接口可以同时继承多个父接口,把所有父接口的规矩都继承过来。
1. 接口的多继承:一个接口认多个 “爹”
语法很简单,用extends关键字,多个父接口用逗号隔开:
java运行
interface A {
void methodA();
}
interface B {
void methodB();
}
// 接口C同时继承A和B两个接口
interface C extends A, B {
void methodC();
}
- 这样一来,接口 C 里就包含了
methodA()、methodB()和methodC()三个抽象方法,实现类实现接口 C 的时候,必须把这三个方法都实现了。
2. 类的多实现:一个打工人,同时签多份合同
一个类不仅可以继承一个父类,还可以同时实现多个接口,这就是单继承多实现!
- 语法:
class 类名 extends 父类名 implements 接口1, 接口2 {} - 注意:必须先继承父类,再实现接口!顺序不能乱。
- 举个栗子:
java运行
// 父类
class Animal {
public void eat() {
System.out.println("动物在吃饭...");
}
}
// 接口1:会飞
interface Flyable {
void fly();
}
// 接口2:会游泳
interface Swimable {
void swim();
}
// 子类:鸟,继承Animal,同时实现Flyable和Swimable两个接口
class Bird extends Animal implements Flyable, Swimable {
// 必须实现两个接口里的所有方法
public void fly() {
System.out.println("鸟在飞...");
}
public void swim() {
System.out.println("鸟在水里扑腾...");
}
}
- 你看,
Bird类继承了Animal的eat()方法,又实现了Flyable和Swimable两个接口的方法,相当于一个打工人同时签了三份合同,既能吃饭,又能飞,还能游泳!
四、接口的作用:为什么 Java 里到处都在用接口?
接口在开发里的地位,就像外卖平台在餐饮行业的地位,核心作用有两个:
1. 扩充子类的能力:单继承不够用,接口来凑!
Java 里的类只能单继承,比如Bird类只能继承Animal,不能再继承Fly和Swim类,但用接口就可以实现多实现,给子类扩充能力。
- 就像外卖平台,商家本来只能卖自己的菜,接入外卖平台后,就能获得 “接单、配送、评价” 等额外能力,接口就是 Java 里的 “能力扩展器”。
2. 降低程序的耦合度:把规矩和实现分开!
耦合度是什么?就是模块之间的依赖程度,耦合度越高,改一个地方就会牵一发而动全身,就像多米诺骨牌一样。
- 接口把 “规矩” 和 “实现” 分开了:接口定义好方法的名字和参数,实现类来写具体逻辑,使用者只需要和接口打交道,不用关心具体是哪个实现类。
- 举个栗子:你用手机充电,只需要知道是 Type-C 接口就行,不用关心是小米的充电器还是华为的充电器,接口就是 Type-C 标准,实现类就是各个厂商的充电器,这样就算换了充电器,你的手机也不用改代码,耦合度就降低了。
五、接口回调:先定规矩,再干活!
接口回调是什么?说白了就是先定义接口(规矩),再由使用者调用接口方法,最后由实现类来完成具体逻辑。
- 举个栗子:你在奶茶店点了一杯奶茶,留了手机号,奶茶做好了店员会打电话给你,这个过程就是回调:
- 先定规矩:“奶茶做好了通知顾客”(接口定义)。
- 使用者调用:店员做好奶茶,给你打电话(调用接口方法)。
- 实现类干活:你接到电话,去取奶茶(实现接口方法)。
- 在开发里,接口回调用得特别多,比如事件监听、异步回调,都是这个套路。
六、面试必背:接口和抽象类的区别?
这道题是面试的高频考点,给你整理成了表格,一眼就能看懂:
好了家人们!接口的知识点全给你扒完了,从基础概念到进阶用法,再到面试必考点,再也不用写代码的时候被接口搞心态了!要是还有啥没看懂的地方,评论区唠唠,我给你掰开揉碎了讲明白!
更多推荐
所有评论(0)