普通类:只有具体实现
抽象类:具体实现和规范(抽象方法)都有
接口:只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程~
接口的本质是契约,就像法律一样,制定好后都必须遵守。
面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口。
声明类的关键字是class,声明接口的关键字是interface。
接口里无法写方法的实现,需要实现类去实现
建立UserService接口
//interface 定义的关键字,接口都需要有实现类
public interface UserService {
//属性默认还是常量~ 接口中的所有定义的属性默认是: public static final
//一般不会在接口中定义常量
int AGE=99;
//接口中的所有定义的方法其实都是抽象的 默认有修饰符:public abstract 在企业中常用
//接口无法实现方法,需要实现类impl去实现
void insert(String name);//增
void delete(String name);//删
void update(String name);//改
void select(String name);//查
}
建立TimeService接口
public interface TimeService {
void timer();
}
建立UserServiceImpl实现类(也同时实现了TimeService)
实现类可以实现多个接口,也就是接口可以实现多继承。
package com.demo1.demo12;
//抽象类:extends
//类 可以实现接口 implements(实现)接口
//实现了接口的类,就需要重写接口中的方法
//多继承~利用接口实现多继承~
public class UserServiceImpl implements UserService,TimeService{
@Override
public void insert(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void update(String name) {
}
@Override
public void select(String name) {
}
@Override
public void timer() {
}
}
接口的作用:
1.约束。(接口用interface关键字)
2.定义方法,然后实现类去重写方法来实现接口,让不同的人去实现他。 例如10个人去实现一个项目。
3.接口定义的方法默认是:public abstract
4.接口定义的属性默认是:public static final
5.接口不能被实例化(抽象类都不能实例化,接口更不可能),因为接口中没有构造方法(接口都没有类,就不用谈构造方法了)
6.可以实现多个接口,用implements关键字
7.但是实现类必须重写接口中的方法,不重写就会直接报错。