接口
接口的概念
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和抽象方法的定义,而没有变量和方法的实现。
1.接口是一种标准,是一种规范,是一种约定
2.接口可以扩展功能
3.接口是灵活的,可以即插即拔
4.接口由继承者来实现
接口的格式
格式
public interface 接口名{
//常量
//抽象方法
}
接口的实现类格式:
public 类名 implements 接口{
// 实现接口的方法
//普通方法
}
接口的特点
-
1.接口使用interface修饰
-
2.接口是常量和抽象方法的集合
常量: 默认使用 public static final 方法: 默认使用 public abstract修饰
-
3.在JDK1.8以后不仅仅只有常量和抽象方法,还有默认方法和静态方法
默认方法用来直接给子类使用,如果子类想重写也可以自行根据需求重写,不会强制重写 静态方法用来直接通过接口名访问
-
4.接口不能够实例化
-
5.接口如果想要实例化–利用多态
-
6.接口的实现类特点:
a.如果一个类想要实现一个接口就必须实现接口中定义的所有抽象方法 b.如果一个类不想实现接口中的抽象方法,那么实现类也升级为接口
-
7.接口是一种规范
-
8.接口可以用来扩展功能
-
9.接口是灵活的
-
10.接口是由继承者来实现
-
11.接口/类之间的关系
类和类 单继承 不可以实现 类和接口 不可以继承 多实现 接口和接口 多继承 不可以实现
-
12.接口和继承的区别?
什么时候使用接口? 什么时候使用继承? 大部分情况下使用接口,因为接口灵活,主要是降低了耦合性,并且接口是一种规范 继承主要体现在代码的抽取以及多态的必要条件
思想:
1.开闭原则
2.高内聚,低耦合
3.面向接口编程
final关键字
final关键字
表示最终的,可以修饰类,成员变量,成员方法。
常量
字面值常量
10 0.5 false true 'a' "abc" null...
自定义常量
final修饰变量成为常量
局部变量: 可以暂时不赋初始值,但是只能够赋值一次
成员变量: 必须给出初始值
final修饰的方法不能够被子类重写
final修饰的类不能够被子类继承
例如: String
final细节:
如果是1.8之前的JDK,那么匿名内部类中访问外界的局部变量需要加final,1.8之后不需要