什么是接口?
- 接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。
- 接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了自然界“如果你是……则必须能……”的理念。
- 接口是在一定粒度视图上同类事物的抽象表示。因为“同类事物”这个概念是相对的,它因为粒度视图不同而不同。
为什么要使用接口?
-
系统灵活性增强
当下层需要改变时,只要接口及接口功能不变,则上层不用做任何修改。甚至可以在不改动上层代码时将下层整个替换掉,就像我们将一个WD的60G硬盘换成一个希捷的160G的硬盘,计算机其他地方不用做任何改动,而是把原硬盘拔下来、新硬盘插上就行了,因为计算机其他部分不依赖具体硬盘,而只依赖一个IDE接口,只要硬盘实现了这个接口,就可以替换上去。
-
不同部件或层次的开发人员可以并行开工
就像造硬盘的不用等造CPU的,也不用等造显示器的,只要接口一致,设计合理,完全可以并行进行开发,从而提高效率。
接口的作用:
- 约束。
- 定义一些方法,让不同的人实现,就比如做一个web网页一个人负责js,一个人负责css等等,但最终每个人完成项目后最终还是围绕完成web这个任务,只不过是分配给不同人web的一部分项目。
- public abstract
- public static final 常量属性
- 接口不能被实例化接口没有方法。
- implements可以实现多个接口。
- 必须要重写接口的方法。
接口的使用方法:
//接口
public class oop09 {
public static void main(String[] args) {
Day daily = new Day();
daily.Year();
daily.Month();
daily.Sun();
daily.Hour();
daily.Minute();
daily.Sec();
}
}
public interface SetData {
//接口中的所有定义的方法其实都是抽象的
void Year(); //省略了开头 pulic abstract
void Month();
void Sun();
}
public interface SetTime {
void Minute();
void Hour();
void Sec();
}
//用来组合接口的任务
public class Day implements SetTime,SetData {
public Day(){
System.out.println("无参构造");
}
public Day(int d){
System.out.println("有参构造");
}
@Override
public void Year() {
System.out.println("哪年");
}
@Override
public void Month() {
System.out.println("哪月");
}
@Override
public void Sun() {
System.out.println("哪日");
}
@Override
public void Minute() {
System.out.println("几分");
}
@Override
public void Hour() {
System.out.println("几时");
}
@Override
public void Sec() {
System.out.println("几秒");
}
}
评论区