接口:
特殊的抽象类 是一个引用数据类型 功能的集合(抽象方法的集合)
继承与实现:
类的继承 : 子类一旦继承父类,就有权使用父类中的内容,拿过来就可以直接使用 接口需要实现 : 实现类一旦实现一个接口,需要对接口中的抽象功能进行实现->重写,然后才能使用 侧重点不同 类智能单继承,接口可以多实现 接口便于后期维护,更加灵活 接口实现解耦(高内聚低耦合) 定义开发规范
推荐使用接口,但是接口不能完全代替父类
定义:
class 类 interface 接口
jdk7及之前:
公共的静态的常量 public static final->默认可以任意省略 公共的抽象的方法 public abstract ->默认可以任意省略
jdk8及之后:
接口的使用
1.不能实例化 2.接口需要被实现 通过implements关键字进行实现 3.根据实现类对象使用 具体实现类 : 重写所有的抽象方法 + 按需新增 抽象实现类 : 按需重写抽象方法 + 按需新增 4.类只能单继承类,类可以多实现接口,需要重写多个抽象方法 5.类与接口之间只能是类实现接口,可以多实现 6.接口与接口之间,可以多继承 7.一个类需要先继承后实现
模式
单例模式 : 某个类型只能拥有单个实例->单例模式
实现方式: 1.饿汉式 : 在类第一次加载完成之后,就创建实例,线程安全的,同步的,一般效率较低 2.懒汉式 : 在调用的时候, 创建实例 ,线程不安全的,不同步的,一般效率较高
步骤:
1.私有的构造器 2.私有的静态的该类的引用->(指向创建好的那个对象) 3.公共静态的访问方式->返回提供一个当前类型的实例
代理模式
静态代理 : 真实角色 代理角色 条件: 真实角色与代理角色要求实现相同的接口 代理角色需要持有真实角色的引用-->通过属性来维护 代理行为
减少与真实角色的沟通,让程序便于后期维护
简单工厂模式
抽象产品角色 : 具体产品角色实现的接口|继承的父类 具体产品角色 : 抽象产品角色的实现类 工厂角色