接口的定义与实现
-
普通类:只有具体实现
-
抽象类:具体实现和规范(抽象方法)都有!
-
接口:只有规范
-
接口就是规范,定义的是一组规则,体现了现实世界中”如果你是……则必须能……“的思想,例如:如果你是天使,必须有一双翅膀。
-
接口的本质是契约,就像我们的法律一样,制定好后大家都遵守。
-
OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++、Java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。
-
声明类的关键字是class,声明接口的关键字是interface。
代码示例:
接口1:UserService
package cheng.oop.demo08;
// interface:定义接口的关键字
// 接口都需要有实现类
public interface UserService {
// 接口定义常量,默认public static final可以省略
public static final int AGE = 99;
String name = null;
// 接口中的所有定义都是抽象的,默认public abstract可以省略不写
public abstract void add();
void delete();
void update();
void query();
}
接口2:
package cheng.oop.demo08;
public interface TimeService {
void timer();
}
实现类:
package cheng.oop.demo08;
// 类可以实现接口:implements 接口
// 实现了接口的类,就需要重写接口中的方法
// 利用接口可以实现多继承效果
public class UserServiceImpl implements UserService, TimeService{
@Override
public void add() {
}
@Override
public void delete() {
}
@Override
public void update() {
}
@Override
public void query() {
}
@Override
public void timer() {
}
}
/*
接口:
1、约束
2、定义一些方法,让不同的人实现
3、方法默认都是public abstract
4、常量默认都是public static final
5、接口不能直接被实例化,没有构造方法
6、implements可以实现多个接口
7、必须要重写接口中的方法
*/