声明类的关键字是 class,声明接口的关键字是 interface
普通类:只有具体实现
抽象类:具体实现和规范(抽象方法)都有!
接口:只有规范!自己无法写方法~专业的约束!结束和实现分离:面向接口编程
抽象类是对事物属性的抽象,接口是对行为的抽象
接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。例如:如果你是汽车,则必须能跑;如果你是坏人,则必须欺负好人。
接口的本质是契约。
UserService 接口里的定义
- 常量 默认 public static final 很少有人在接口中定义常量。
- 方法 默认 public abstract
package com.oop.demo09;
// 抽象的思维~ Java 架构师~
// interface 定义的关键字 , 接口都需要有实现类
public interface UserService {
//常量 ~ public static final
int AGE = 99;
//接口中的所有定义其实都是抽象的 ~ public abstract
void add(String name); //增
void delete(String name); //删
void update(String name); //改
void query(String name); //查
}
UserServiceImpl类~利用接口(interface)实现多继承
package com.oop.demo09;
// 抽象类: extends~ 单继承
// 类 可以实现接口 implements 接口-->多继承
// 实现了接口的类,就必须重写接口中的方法!
//多继承~利用接口实现多继承
public class UserServiceImpl implements UserService,TimeService {
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void update(String name) {
}
@Override
public void query(String name) {
}
@Override
public void Timer() {
}
}
TimeService接口
package com.oop.demo09;
public interface TimeService {
void Timer();
}
接口的作用:
- 约束
- 定义一些方法,让不同的人实现 ~ 10 ----> 1
- public abstract 方法
- public static final 常量
- 接口不能被实例化~,接口中没有构造方
- implements 可以实现多个接口
- 必须要重写接口的方法!