1.接口是什么?
1.定义:接口是一系列方法的声明,只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的功能。
2.语法结构
public interface 接口名{;
int num = 100;
// 属性 : 默认static final 修饰
// 由static 修饰的属性和方法不属于对象,可以由类名、接口名直接调用,具有唯一性,只属于类
// 方法: 没有方法体
public abstract void test();
}
// 只要一个结构体中 有抽象的方法就不能实例化,定义对象
2.为什么需要接口
JAVA的编程思想是抽象化(Abstract),只有抽象化才可以有万般变化。
Eg:
创建一个人的类
属性: name age …
方法: 吃饭 睡觉
以上的属性与方法不适用与所有的人,人类不够抽象,不可以定义所有种类的人。接口实现了方法的抽象化。实现了万般变化。
3.如何实现使用接口
创建一个类,实现 implements (继承 extends)这个接口
格式:
public class 类名 implements 接口名{
必须重写接口中所有的方法 : 改分号为大括号
方法中加上这个方法具体的 代码内容
}
4.继承和接口的区别和优缺点
1.继承:子类继承父类,子类继承父类所有(可以不定义)的属性与方法,定义新的属性和方法。若子类重写父类的方法,则优先调用重写之后的方法。参数中子类对象自动转型为父类对象。比如:大学生类定义的对象首先属于大学生类其次属于学生类。
2.接口:子类重写接口的所有方法。
3.继承和接口的区别:
(1)在面向对象编程中可以有多继承,但是只支持接口的多继承,不支持继承的多继承
继承在java中具有单根性,子类只能继承一个父类。
(2)在接口中只能定义静态常量,和抽象方法。而在继承中可以定义属性,方法,变量,常量等…
(3)某个接口被类实现时,在类中一定要实现接口中的抽象方法。而继承想调用那个方法就调用那个方法,毫无压力。
5.面向对象五大原则,设计一个项目时尽量遵循
1.单一职责原则
界面类写面板,按钮,标签。监听器类写动作,鼠标监听器。对象类可以写用户,书,人 ,学生。一个类的功能要单一,不要把太多代码与方法都写在一个类中。
2.开放封闭原则
扩展开放 、 扩展能力 : 多接口实现优先单继承
方法扩展抽象都用接口,属性以及一些必要的方法扩展用继承。
修改封闭 :对重要私密的属性,方法进行私有化
3.里氏替换原则 - 自动转型
一个地方需要的类型是父类类型的,这个父类的所有子类对象又可以替代父类。子类应当替换父类出现在父类可能出现的任何位置上。子类优先级高,
4.依赖倒置原则
具体(类)依赖抽象(接口),具体不依赖具体,抽象不依赖具体。
Eg: 张三有吃饭这个方法,参数为苹果类型(可转型为食物接口)。
5.接口分离原则
接口尽量单一功能定义。
LockInterface open close
OpenInterface open
有一个接口 – eat read fly
实现这个接口的实例类 - 人 熊 鸟
解决方案就是写成三个独立接口,人实现eat、read,熊实现eat,鸟实现eat、fly。避免eat、red、fly被鸟人实现。
注意:接口可以在不同类之间实现组合。多个类实现同一接口。