什么是继承?
在设定一些对象是他们有时候都是有一些共性的,如狗,猫,熊猫,他们都是有年龄体重和颜色的,如果不用继承的方法的话就会使得代码出现很多的重复性,如果设定一个对象:动物,将他们的共性都加到动物上去,用的时候只要利用继承便可以提高代码的复用性,提高便利性。
通过一个父类(拥有子类共有的特征)来对子类共性抽取,提高代码的复用性,这就是继承。
继承的意义是什么?
共性抽取,提高代码的复用性
那么说了这么多的继承的好处,到底怎么用继承?
我们可以利用extend关键字来实现继承,需要注意的是一个类只能继承一个类,不能同时继承多种类。需要注意的是父类中的成员变量和方法必须要得是共性才行,不然继承没意义。
super关键字
在子类中如何引用父类的成员变量和方法呢?在之前我们已经知道this关键字可以引用当前对象,而我们所介绍的super关键字是用来引用父类对象的。
通过super关键字引用将父类的name和age赋值给了子类。
父类构造方法
我们知道一个类如果我们没有写构造方法时,它就会自己生成一个无参的构造方法,而父类也是如此,并且子类如果继承了父类的话,父类的构造方法在子类加载时就会进行,先有父类再有子类,所以我们在写子类的构造方法时,第一行永远先要执行父类的构造方法。
加之前
加之后
所以对于子类的构造方法一定要注意先写父类的构造方法。
静态代码块与实例代码块
我们发现静态代码块时最先执行的,其次时父类实例代码块和构造方法。当我们再实例化对象时静态代码块并没有运行,由此可以确定静态代码块只在程序运行一次,而实例化代码块随着新对象的创造而运行。
final关键字
final关键字主要用来修饰类,方法,变量。类不能继承,变量不能被修改。
方法不能被重写,final修饰该方法代码此方法的功能已经满足当前的要求,并不需要通过重写来进拓展。
类不能被继承