继承与实现

前言

想到继承与实现,就一定会联想到抽象类与接口,本文就以抽象类与接口为入口进行简单概括,同时对继承与实现进行扩展小结。


普通类与抽象类

1. 抽象类存在的意义

为了复用该类的方法,即多态的实现,(一脉相承,照单全收)

2. 区别

相较于普通类多了一个抽象方法,(不可被static,final修饰)修饰权限只能为(public或protected)

由于不能new抽象类,所以构造方法只能提供子类调用

3. 优势

可强制性规范写法,明确需要覆盖的方法

4. 扩展

为什么是单继承多实现?

举个例子:

A有方法eat(),B和C继承并重写了A的eat()

假如,此时D多继承了B和C,就会导致eat()方法同名

然而,实现则是每次都会对方法重写(确保都在B,C层级上),即使B,C接口都有eat()方法,也只重写一个

继承用法

继承可用在对原有类的扩展上,比如一张数据表定义完后,后期需要对该表功能进行扩充,即可使用继承来添加新的字段。


抽象类与接口

1. 接口存在的意义

增强代码的扩展性,取其精华去其糟粕(东拼西凑)

2. 区别

抽象类的再抽象

由(public static)常量和(public abstract)抽象方法组成

JDK1.8后可以定义默认的实现方法

没有构造方法(类与接口的区别,单继承与多实现的区别)

3. 优势

精确扩展功能,不会把不需要的方法或变量也继承下来

4. 扩展

需要新功能时,只需要新添加一个接口,实现该接口即可

猜你喜欢

转载自www.cnblogs.com/guaosky/p/12543743.html