15.接口

接口:interface
  • 普通类:只有具体实现
  • 抽象类:具体实现和规范(抽象方法)都有!不能new只能通过子类实现
  • 接口:只有规范!自己无法写方法~专业的约束! 约束和实现分离:面向接口编程~
  • 接口就是规范,定义的是一组规则,体现了现实世界中"如果你是...则必须能..."的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。
  • 接口本身是契约,就像我们人间的法律一样。制定好大家都遵守。
  • OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式研究的,实际上就是如何合理的去抽象。

 1 package com.oop.demo10;
 2 
 3 // interface 定义关键字 , 接口都需要有实现类
 4 public interface UserService {
 5 
 6     //公共的静态常量~ public static final
 7     public static final int AGE = 99;
 8 
 9     //接口中的所有定义的方法,其实都是抽象的 public abstract
10     public abstract void add(String name);
11 
12     void delete(String name);
13 
14     void update(String name);
15 
16     void query(String name);
17 
18 }
1 package com.oop.demo10;
2 
3 public interface TimeService {
4     void timer();
5 }
 1 package com.oop.demo10;
 2 
 3 // 抽象类:extends~
 4 // 类 可以实现接口 implements 接口  Alt+回车-->implements method-->回车
 5 // 实现了接口的类,就需要重写接口中的方法~
 6 
 7 // 多继承~利用接口实现多继承~
 8 public class UserServiceImpl implements UserService, TimeService {
 9 
10     @Override
11     public void add(String name) {
12 
13     }
14 
15     @Override
16     public void delete(String name) {
17 
18     }
19 
20     @Override
21     public void update(String name) {
22 
23     }
24 
25     @Override
26     public void query(String name) {
27 
28     }
29 
30 
31     @Override
32     public void timer() {
33 
34     }
35 }
作用:
  1. 约束
  2. 定义一些方法,让不同的人去实现~ 10个员工都会去实现一个接口但是有10中不同的实现方式
  3. 接口中的默认的方法都是public abstract
  4. 常量:public static final
  5. 接口不能被实例化~、接口中没有构造方法~
  6. implements可以实现多个接口用逗号隔开
  7. 必须要重写接口中的方法~

猜你喜欢

转载自www.cnblogs.com/duanfu/p/12222628.html