抽象方法:使用abstract修饰的方法,没有方法体,只有声明。
抽象类:包含抽象方法的类就是抽象类、通过抽象类,我们可以做到严格限制子类的设计,使子类之间更加通用
•使用要点:1.有抽象方法的类职能定义为抽象类
2.抽象类不能实例化,不能用new来实例化抽象类
3.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用
4.抽象类只能被继承
5.抽象方法必须被子类实现
测试实例:
接口是比“抽象类”还抽象的抽象类,可以更加规范的对子类进行约束。接口不提供任何实现,接口中所有的方法都是抽象方法。接口只定义规范,不定义具体的实现。
声明格式:访问修饰符 interface [extends 父接口1,父接口2] {
常量定义;
方法定义;
}
定义接口的详细说明:1.访问修饰符:只能是pulic 或默认
2.接口名:和类名采用相同命名机制
3.extends:接口可以多继承
4.常量:接口中的属性只能是常量,用static static final修饰
5.方法:接口中的方法只能是public abstract
•要点:1.子类通过implements来实现接口中的规范
2.接口不能创建实例,但是可以用于声明引用变量类型
3.一个类实现了接口,必须实现这个接口中所有的方法,并且这些方法都只能是public的
提问♥:java中有多继承吗? 类不能实现多继承,接口可以实现多继承
面向接口编程:是面向对象编程的一部分
为什么需要面向接口编程? 软件设计中最难处理的需求的复杂变化,需求的变化更多体现在具体实现上。借口就是规范,是项目中最稳定的东西。通过面向接口编程,而不是实现面向实现类编程,可以大大降低模块之间的耦合性,提高整个系统的可扩展性和可维护性。
为什么阿里巴巴谨慎使用继承:介绍了多态比继承更有优势的地方