20180913(ExtraWork)UpdateInterfaceSummary

1.接口的概念
接口是一种由外部给类选择性添加行为的一种新的数据类型

2.接口的特点
(1)接口文件最后也会被变异成字节码文件(服务器.class)
(2)接口跟抽象列一样不能被实例化,只能由接口的实现类来实例化
(3)接口中的所有方法,都只能定义成抽象方法,不能拥有方法体
(4)接口中所有方法,访问修饰符都是public,就算不写默认也是public
(5)接口中不能有构造器,也不能拥有初始化块(静态初始化块)
(6)接口中不能定义成员变量,只能定义公开的并且是静态的常量,在定义常量时,可以写成public static final,也可以写成static final,也可以写成final。甚至可以不写。但是不代表属于同包。
(7)接口中可以定义无限个常量,可以定义无限的抽象方法(理论上)
(8)接口在使用上来讲,不能被实例化,所有抽象方法都必须由接口的实现类来实现
(9)类不能继承接口,只能实现接口(implement),类只能单继承,但是可以多实现,用逗号隔开
(10)JDK1.8后,在接口中可以使用default关键字,声明非抽象方法。但是真正的访问修饰符还是public,,,default此时只是声明关键字,而不是访问修饰符
(11)接口中可以使用static声明方法,但是必须有方法体的实现“{}”
3.接口的使用原则
(1)使用接口解决多继承
(2)一个类智能继承一个父类,但可以实现多个接口,用逗号隔开
(3)使用interface 声明接口,接口使用extens继承接口,用implements实现接口,类一旦实现了接口,那么就必须遵循“契约”,去实现接口的所有抽象方法
(4)使用接口为外部类添加功能
(5)以面向对象的角度考虑将一个类与身自来的特征和行为和依赖于外部的可选的特征和行为分离,让类尽可能的丰富,让我们在设计程序的时候,不再关注具体的类,而是分离关注类上拥有哪些接口所.定义的能力,从而做到程序设计时,类类的直接关系,变换为类-接口-类,这种变换关系,也被称之为”解耦”
4.接口的优点
(1)将设计和实现分离,对外(调用者)隐藏了实现(而通常调用者也不关心实现)
(2)用接口暴露类的行为
(3)规范类的行为
(4)面向对象编程是OOP的核心
5.接口和抽象类的区别
(1)接口里所有方法都说abstract的,所有属性都是public static final
(2)抽象类是接口的部分实现,既能定义abstract方法,也能定义普通的方法和属性,比接口更加灵活
(3)正确选择两者使用的时机
(4)还可以从定义和设计的层次进行区分
6.接口与多态
(1)接口和实现类的关系,依旧是is..a的关系,同样可以使用”转型技术”
(2)接口引用类型转换的时候,如不过不是该的实现类,将无法转型成功,因为不是父子关系
(3) 这里写图片描述

猜你喜欢

转载自blog.csdn.net/Lsy_Coder/article/details/82685907