接口
一种特殊的抽象类,jdk1.7以前只能存在公共的静态的常量和公共的抽象方法。
优点:可以定义开发规范,提高代码的复用性,耦合性,可以多实现。
默认的规范:public,static,final 数据类型 变量名 = 赋值
定义一个接口使用,interface关键字。
需要注意的地方:
1.抽象的方法必须重写
2.具体的实现类去实现接口,需重写里面的抽象方法,按照需要扩展亦可。
3.实现和继承很像,都能使用父类或父类接口中的功能
4.接口不能实例化
5.类只能继承类且只能单继承,类可以实现接口,一个类可以实现多个接口
6.接口与接口之间只能继承,接口可以继承多个接口
7.要避免实现多个接口中存在同名的方法
设计模式
1.单例设计模式,这个类只能有一个实例两种方式
(1).饿汉式:无论是否使用,在类的加载阶段创建一个对象,此方式线程安全-效率相对较低
(2).懒汉式:使用时才创建,不使用不创建,此方式线程不安全-但效率相对较高
2.静态代理
代理角色和真实角色有相同的接口,代理角色持有真实角色的引用,解耦性便于代码维护和提高代码复用性
内部类
在类中创建的类,称为内部类,内部类可以使用外部类的变量和方法。内部类有5种形式
1.成员内部类:在外部成员的位置,有成员的特性使用成员修饰符
2.私有内部类:用private关键字修饰,须在外部类里创建一个public方法来创建 内部类对象
3.静态内部类:只能在静态内部类中定义静态内容,除了静态的常量。静态内部成员方法可以直接用静态内部类的成员,可以直接使用静态外部类中的静态内容
4.局部内部类:在方法中定义的类是局部内部类,局部内部类的内容只能在当前方法中使用
5.匿名内部类:简化接口的实现类|子类,可以使用匿名内部类。jdk1.8新增lambda表达式简化内部类的使用格式为:()->{}
()是参数列表,->代表箭头函数,具有上下文推导的作用,{}代表抽象方法的表达式