Java学习_Day6
抽象类和抽象方法
抽象方法:将共性行为抽取到父类后,由于每一个子类执行的内容是不一样的,所以在父类中不能确认具体的方法体,该方法就可以定义为抽象方法
抽象类:如果一个类中存在抽象方法,那么该类必须被声明为抽象类
注意事项
- 抽象类不能被实例化
- 抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类
- 可以有构造方法
- 抽象类的子类
要么重写抽象类中的所有抽象方法
要么是抽象类

接口
接口就是一种规则,是对行为的抽象
接口的定义与使用
- 接口用关键字interface来定义
public interface 接口名{}
- 接口不能实例化
- 接口和类之间是实现关系,通过implements关键字来表示
public class 类名 implements 接口名{}
- 接口的子类(实现类)
要么重写接口中的所有抽象方法
要么是抽象类
注意
接口和类的实现关系,可以单实现,也可以多实现
public class 类名 implements 接口名1,接口名2{}
实现类还可以在继承一个类的同时实现多个接口
public class 类名 extends 父类 implements 接口名1,接口名2{}
接口中成员的特点
- 成员变量
只能是常量
默认修饰符 :public static final
- 构造方法
没有
- 成员方法
只能是抽象方法
默认修饰符:public abstract

接口的应用
1.接口代表规则,是行为的抽象,想要让哪个类用于一个行为,就让这个类实现对应的接口就可以了
2.当一个方法的参数是接口时可以传递接口所有实现类的对象,这种方法称为接口多态
接口和类之间的关系
- 类和类的关系
继承关系,只能单继承,不能多继承,但是可以多层继承
- 类和接口的关系
实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
- 接口和接口的关系
继承关系,可以单继承,也可以多继承




适配器设计模式
解决接口与接口实现类之间的矛盾问题
当一个接口中抽象方法过多,但是我只要使用其中一部分的时候,就可以适配器设计模式
书写步骤:
编写中间类XXXXAdapter,实现对应的接口
对接口中的抽象方法进行空实现
让真正的实现类继承中间类,并重写需要用的方法
为了避免其他类创建适配器的对象,中间的适配器类用abstract进行修饰
更多推荐




所有评论(0)