16.接口的定义与实现
-
接口 Interface 的定义
-
interface 接口,是一个抽象类型,是抽象方法的集合
-
接口以 interface 来声明
[可见度] interface 接口名称 [extends 其他的接口名] { // 声明变量 // 抽象方法 }
-
-
接口的特性
- 接口中的方法都是隐式抽象方法,被隐式的指定为 public abstract
- 接口中可以含有变量,但变量是隐式指定的 public static final 变量
- 接口无法被实例化(不可对接口new对象!),但可以被实现 implements
- 接口中的方法只能由实现接口的类来实现 implements,除非实现接口的类是抽象类,否则该类要定义接口中的所有方法
- 接口没有构造方法
- 接口支持多继承!!!
-
普通类、抽象类与接口的区别
- 普通类:只有具体实现(指用方法实现)
- 抽象类:具体实现和规范(指抽象方法)都有
- 接口:只有规范!自己无法实现~~用于专业的约束! 约束和实现分离==>面向接口编程!
-
接口的本质
- 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。比如:如果你是汽车,则必须能跑;如果你是鱼,则必须会游等等。定义一些方法,让不同的人实现,但实现方式是多样的!
- 接口的本质是契约,就像我们人间的法律一样,制定好后大家都要遵守。
- OO面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口。
//接口 使用interface关键字来定义 //接口 都需要有实现类 public interface UserService { //接口中的变量都是隐式public static final的常量 int SERV_PER = 80; //接口中的方法定义都是隐式指定的public abstract方法 void addUser(String username, String password); void deleteUser(String username); void updateUser(String username, String password); void queryUser(String username); }
public interface TimeService { int STEP_TIME = 30; void timer(String time); }
//类可以实现接口,使用implements关键字 //多继承:类通过implements同时实现多个接口,实现多继承 public class UserServiceImpl implements UserService,TimeService { //实现接口的类,需实现接口的所有方法,除非这个类是抽象类 @Override public void addUser(String username, String password) {} @Override public void deleteUser(String username) {} @Override public void updateUser(String username, String password) {} @Override public void queryUser(String username) {} @Override public void timer(String time) {} }
------------------------------“笔记整理自跟着《狂神说Java》”----------------------------------