一,定义接口的语法:
定义接口的语法:
[访问修饰符] interface 接口名 extends 父接口1,父接口2,…{
//常量定义
//方法定义
}
类实现接口的语法:
[访问修饰符] class 类名 extends 父类名 implements 接口1,接口2,…{
//类成员
}
二,接口的特性
(1)接口的命名规则与类相同。如果修饰符是public,则该接口在整个项目中可见;如果省略修饰符,则该接口只在当前包可见。
(2)接口中可以定义常量,不能定义变量。接口中的属性都会自动用public static final 修饰,即接口中的属性都是全局静态常量。
(3)接口中方法自动用public abstract修饰,接口中所有方法都是抽象方法。
(4)接口不能实例化,接口中不能有构造方法。
(5)接口直接可以通过extends实现继承关系,一个接口可以继承多个接口,但是接口不能继承类。
(6)接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。
三,面型接口编程
程序设计时:
(1)关心实现类有何能力,而不关心实现细节
(2)面向接口的约定而不考虑接口的具体实现
面向接口编程就是先把客户的业务逻辑线提取出来,作为接口,业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,替换该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。
四,面向接口编程的优点
1.接口体现了约定和实现相分离的原则
2.面向接口编程就意味着:开发系统时,主体架构使用接口,接口构成系统的骨架,这样就可以通过更换实现接口的类来实现更换需求。
3.(1)降低代码间的耦合性
(2)易于程序的扩展,提高了程序的可扩性性
(3)提高了程序的可维护性
五,(面试题)抽象类和接口的联系和区别?
相同点:
(1)代表系统的抽象层
(2)都不能被实例化
(3)都能包含抽象方法:用于描述系统提供的服务,不必提供具体实现
不同点:
(1)在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法
(2)抽象类便于复用,接口便于代码维护
(3)一个类只能继承一个直接的父类,但可以实现多个接口
六,总结