接口
什么是接口? (是为了弥补java中类只能单继承的缺陷) 接口是一个特殊的抽象类 当这个类中的方法都是抽象方法时 可以把这个类定义为一个接口。接口一般表示一种能力 当一个类想拥有这个功能的时候 就去实现这个接口。
java是多继承 java中的类是单继承 java中的接口是多继承
接口能不能实例化? 不能 因为接口中的方法都是抽象方法 没有方法体
接口能不能有成员变量(要给初始值 因为接口中的变量默认是public static final 例如:int NAME 常量的变量名全是大写的) 只能存在常量
接口中不存在构造方法 可以存在静态方法 因为静态方法已经完全脱离了类 只要你有一个类 就能直接调用静态属性和方法
接口中能不能存在普通方法? 在jdk1.7之前是不能有普通方法的 但是在jdk1.8之后 接口中可以存在普通方法 但是要加关键字 default来修饰
类与类之间使用继承 类与接口之间使用implements 关键字 表示实现的意思
接口中的方法 默认修饰符是 public abstract
当一个类去实现接口的时候 必须要实现接口中的所有抽象方法 或者将当前类声明为抽象类
接口A想拥有接口B的功能 可以使用继承 同类型之间使用继承 关键字是extends 接口是允许多继承的
Dog类 是一个实现类 去实现接口的时候 必须要实现接口中以及父接口中的所有的抽象方法
一个类可以继承一个类同时去实现一个接口
继承的时候 is a(同种类型) 的关系
接口 has a(有某种能力的时候)
接口与接口之间的关系? 继承
类与接口之间的关系? 类去实现接口
接口与类之间的关系? 没有关系
接口与抽象类的关系? 接口是一个特殊的抽象类
使用接口的步骤:
1 创建接口 声明方法
2 创建类 实现接口 实现接口中的方法
3 使用实现后的方法执行具体的步骤
接口的特点:
1 接口不能用于实例化
2 接口中没有构造方法
3 接口中所有的方法 必须是抽象方法 默认为 public abstract
4 接口不能包含成员变量 除了public static final 常量
5 接口不是被继承了 而是被类实现了 使用关键字 implements
6 接口支持多实现 多继承
7 一个类可以继承一个类 同时继承多个接口
接口和抽象类的区别?
1 抽象类使用关键字abstract class 修饰 接口使用关键字interface 修饰
2 抽象类使用关键字extends 实现继承 接口使用implements来实现
3抽象类中可以包含抽象方法和普通方法 接口中只能有抽象方法 静态方法也可以· 普通方法在jdk1.7之前不能有 在jdk1.8之后可以存在 但是要加关键字 default来修饰
4 抽象类可以有构造方法 接口不能有构造方法? why? 抽象类可以有构造方法 作用是给子类用 用super关键字
5 抽象类可以有成员变量 接口只能有常量
6 抽象类只能支持单继承 接口可以·多继承
7 抽象类里面的方法的访问修饰符可以是 public protected private 接口种的方法的访问修饰符只能说public