接口
1.概述
接口是一种引用数据类型,是一个标准,规则
2.定义
定义接口
public interface 接口名{
}
实现接口
public class 实现类 implements 接口{
}
3.接口成员
3.1抽象方法
定义
public abstract 返回值类型 方法名(形参);
使用
实现类实现接口
重写抽象方法
创建实现类对象,调用重写方法
(接口不能new对象)
3.2 默认方法
定义
public default 返回值类型 方法名(形参){
方法体;
return 结果;
}
使用
在实现类中可重写可不重写
创建实现类对象,调用默认方法
3.3静态方法
定义
public static 返回值类型 方法名(形参){
方法体;
return 结果;
}
使用
接口名直接调用
3.4成员变量
定义
public static final 数据类型 成员变量名 = 值;
使用
接口名直接调用
4.接口的特点
- 接口可以多继承
- 接口可以多实现
- 一个类可以继承一个父类的同时实现一个或者多个接口
5.接口与抽象类
5.1相同点
- 都位于继承顶端,用于被其他类继承或实现
- 都不能new对象
- 都包含抽象方法,而且必须重写
5.2不同点
- 抽象类:一般作为父类使用,可有成员变量,构造成员方法,抽象方法等。
- 接口:成员单一,一般抽取接口,都是方法
- 类不能多继承,接口可以
多态
1.前提:
- 必须有子父类继承关系或者接口实现关系
- 必须有方法的重写
- 父类引用指向子类对象
2.成员访问特点
- 成员变量:看等号左边是谁
- 成员方法:看new的是谁
优点
扩展性强
缺点
不能直接调用子类特有功能
4.转型
向上转型:父类引用指向子类对象
向下转型:父类类型转成子类类型–可以调用子类特有功能
类型转换异常:ClassCastException
解决方法:类型判断
对象名 instanceof 类型
//判断对象是否属于指定的类型