JAVA 面向对象之继承
继承
继承的概述与格式
继承主要解决的问题就是:共性抽取
继承的特性:1、子类拥有父类非私有的属性和方法
2、JAVA继承时单继承,一个儿子只有一个亲爹
3、JAVA语言支持多层继承,一个儿子有一个亲爹,也可以有一个亲爷爷
4、多个类可以继承一个父亲
格式:
class 子类 extends 父类(){}
继承中成员变量与成员方法的特点
无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类
方法的重写(Override)
方法的名称一样,参数列表也一样(覆盖,覆写)
特点:1、new的是谁用的就是谁
2、子类方法的返回值必须小于等于父类方法的返回值范围
3、子类方法的权限必须大于等于父类方法的权限修饰符
public > protected > 不写 > private
可以使用注解:@Override 来检测是不是有效的重写
@Override
应用场景:
当父类的方法不能完全满足子类使用,这个时候子类重写父类的方法,并可以再方法中使用super关键字来调用父类的方法
这样即拥有父类的功能也拥有子类特有的功能
继承中构造方法的执行顺序
1、子类构造方法当中有一个默认隐藏的"super()"方法,所以先父亲再儿子
2、子类构造可以通过super关键字来调用父类重载构造
3、super的父类构造调用必须是子类构造方法的第一个语句。一个子类构造不能多次调用super构造
总结:子类必须调用父类构造方法,不写则赠送,写了则用写定的super调用,super只能有一个还必须是第一个。
super 与 this 的用法和区别
this:当前对象的引用
调用本类的成员变量与成员方法
在本类的构造方法第一行调用本类的其他构造方法
super:调用父类引用
调用父类的成员变量与成员方法
在子类中的构造方法第一行调用父类的构造方法
继承的优缺点
优点:提高代码的复用性、可维护性
缺点:类的耦合性增强了
开发原则:高内聚低耦合
内聚:就是自己完成某件事的能力
耦合:类与类的关系