一.接口java
一、接口的语法
访问修饰符 interface 接口名{
主体;
}
二、接口中包含哪些内容
1) 公共常量 ==》 public static final 数据类型 常量名=值;
public static final 能够省略;
2)公共抽象方法 ==》 public abstract 返回值类型 方法名(参数列表);
public abstract能够省略。
3)注: 以上是JDK8以前,JDK8有所变化
新增两种方法 :
默认方法 : public default 返回值类型(参数列表){方法体}
静态方法 : public static 返回值类型(参数列表){方法体}
三、接口的应用编程
1) 不能new,不能实例化。对象
2) 找一个类实现接口。实现:implements: 格式:public clsss 类名 implements 接口名{ }继承
3) 并在实现类(实现接口的类)中要对抽象方法给出实现。方法重写。接口
4) 接口也支持多态。接口类型 接口引用 = new 实现类();生命周期
5) 接口之间能够继承,并且能够多继承。开发
6) java只支持单一继承,但能够多实现。class 类名 implements 掊口名,接口名{ }class
7) 一个类能够同时继承于一个父类和实现多个接口。class 类名 extends 父类 implements 接口{}
四、面向接口编程
1)针对接口(抽象)编程,不针对实现类编程
2) 知足:开-闭原则进行开发。
3) 程序可扩展性强,易维护
4)接口和实现分离了,适于团队的协做开发
5)实现松散耦合的系统,便于之后升级,扩展。变量
二.抽象类与接口的区别扩展
一、抽象类和接口的区别
1)、相同点:
抽象类和接口都不能实例化对象
抽象类的子类和接口的实现类都实现抽象类或接口中的抽象方法
2)、不一样点:
2.1)、interface须要实现,要用implements,而abstract class须要继承,要用extends。
2.2)、一个类能够实现多个interface,但一个类只能继承一个abstract class。
2.3)、interface强调特定功能的实现,而abstract class强调所属关系。
2.4)、抽象类是由多个子类抽象而得。而接口是多个方法的抽象
三.类之间的关系
一、泛化关系 :类与类之间的继承关系 ,接口之间的继承关系
二、实现关系 :类实现接口,重写接口中的方法
三、关联关系 :QQ用户和QQ好友 平等的关系。 在QQ用户类中有一个属性好友的属性
四、聚合关系 : 总体和部分之间各有本身独立的生命周期 汽车 :发动机
五、组合关系 :强聚合关系(总体和部分) 部分依赖于总体的生命周期。 身体:四肢
六、依赖关系 : 弱关联关系 表示:一个类在另外一个类的方法中出现(参数,返回值,局部变量)
四.is-a,has-a,like-a区别
A 和 B 为两个类
1.is-a就是说: 一个对象是另外一个对象的一个子类。
A is-a B 表示 A继承于B(只继承未添加新方法);
A is-like-a B 表示 A继承于B(添加了新方法);
2.has-a表明类和它的成员之间的关联关系。这有助于代码的重用和减小代码的错误。
A has-a B 表示 A 中使用了 B 类的对象