继承
定义:把多个类中相同的内容给提取出来定义到一个类中。Java提供了关键字:extends
格式:class 子类名 extends 父类名{}
好处:①.提高了代码的复用性
②.提高了代码的维护性
③.让类与类之间产生了关系,是多态的前提
类与类之间产生了关系,其实也是继承的一个弊端:类的耦合性增强了。
开发的原则:低耦合,高内聚。
耦合:类与类的关系
内聚:就是自己完成某件事的能力
特点:①.Java中之支持单继承,不支持多继承。有些语言是支持多继承的。
②.Java支持多层继承。
注意事项:①.子类只能继承父类所有非私有的成员(方法和变量)。
②.子类不能继承父类的构造方法,但是可以通过super关键字去访问父类的构造方法。
③.不要为了部分功能而使用继承。
super代表父类存储空间的标识:
①.调用成员方法 this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法
②.调用构造方法 this.构造方法 调用本类的构造方法
super.构造方法 调用父类的构造方法
③.调用成员变量 this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
继承中构造方法的关系:
①.子类中所有的构造方法默认都会访问父类的空参数的构造方法
②.子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类初始 化。
注:子类的每一个构造方法的第一条语句默认是:super()。子类中一定要有一个去访问父类的构造方法,否则父类就没有初始化。
方法重写:子类中出现了和父类中一模一样的方法声明。
final:最终的意思。它可以修饰类、方法、变量。
特点:①.final可以修饰类,该类不能被继承
②.final可以修饰方法,该方法不能被重写
③.final可以修饰变量,该变量不能被重新赋值,因为这个变量其实是常量。
final修饰基本类型:基本类型的值不能发生改变
final修饰引用类型:引用类型的地址值不能发生改变,但是该对象的堆内存的值是可以改变的