秦疆的Java课程笔记:75 面向对象 接口的定义与实现

发布时间 2023-12-19 14:47:20作者: Acolyte_9527
  • 区别
    • 普通类:只有具体实现。
    • 抽象类:具体实现和规范(抽象方法)都有。
    • 接口:只有规范,自己无法写方法。专业的约束。约束和实现分离:面向接口编程。
  • 接口就是规范,定义的是一组规则。
  • OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么讨论设计模式都只针对具备抽象能力的语言(C++、Java、C#等),因为设计模式研究的,就是如何合理的抽象。
  • 声明类的关键字是class,声明接口的关键字是interface
  • 例如:
public interface UserService {  
    public abstract void run();  
}
  • 实际上,接口中所有的定义其实都有public abstract修饰,也就是抽象方法。IDEA中会直接将这两个修饰词标记灰色,意思是可以不写。
public interface UserService {  
    public static final int AGE = 99;  
}
  • 接口中定义的属性都有public static final修饰,也就是静态的常量。同样会被IDEA标灰,可不写。(秦疆老师:很少有人这么玩。)

  • 接口都需要实现类。

//接口UserService用户服务,增删改查
public interface UserService {  
    void add(String name);  
    void delete(String name);  
    void update(String name);  
    void query(String name);  
}
//接口TimeService时间服务
public interface TimeService {  
    void timer();  
}
//实现类
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() {  
    }  
}
  • 类名中的Impl即是关键词implement,实施、贯彻、执行。
  • 实现了接口的类,就需要重写接口中的方法。
  • 未重写接口的方法之前,报错是正常的,重写后就不会报错了。
  • 可以通过Alt+Insert快捷键,选择“重写接口”选项,也可以使用Ctrl+I直接重写接口。
  • 接口可以实现多继承。