继承是先天就有的能力(功能)
接口是后天学习(实现)的能力(功能)
- 接口和继承解决的问题不同
继承的价值主要在于:解决代码的复用性和可维护性
接口的价值主要在于:设计,设计好各种规范(方法),让其他类去实现这些方法。即更加的灵活…
- 接口比继承更加灵活
接口比继承更加灵活,继承是满足 is -a 关系,而接口只需满足 like - a 的关系Cat 是一个Animal,Cat像一个Tiger
3.接口在一定程度上实现了代码解耦【即 接口的规范性 + 动态绑定机制】 //现在无需理解,过两年后再来看
接口VS继承代码案例分析
package com.tao.interface_;
/**
* Create By 刘鸿涛
* 2021/12/26 9:57
*/
public class ExtensVSInterface {
public static void main(String[] args) {
LittleMonkey Wukong = new LittleMonkey("猴子");
Wukong.climbing();
Wukong.swimming();
}
}
class Monkey{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Monkey(String name) {
this.name = name;
}
public void climbing(){
System.out.println("猴子会爬树");
}
}
//继承 实现先天能力
//1.当子类继承了父类,就自动的拥有了父类的功能
//2.如果子类需要扩展功能,可以通过实现接口的方式扩展
//3.实现接口 是 对 Java 单继承机制的一种补充
class LittleMonkey extends Monkey implements Fishable,Birdable{
public LittleMonkey(String name) {
super(name);
}
//实现接口功能
@Override
public void swimming() {
System.out.println(getName() + "通过实现接口,猴子也能游泳了!!!欧耶");
}
@Override
public void flying() {
System.out.println(getName() + "通过实现接口,猴子也能飞翔了!!!欧耶");
}
}
//接口 实现后天能力
interface Fishable{
void swimming();
}
interface Birdable{ //birdable :飞翔
void flying();
}