Java继承

继承是Java面向对象思想一个很重要的组成部分,通过继承,我们不必关心别人帮我们做了什么,我们就直接可以拿来用了。

 

什么是继承

继承很容易理解,一个儿子使用了他爸爸的东西,这就可以算作继承。在Java中,继承是发生在类之间的,也就是说一个类继承另一个类,根据生活中的经验,一般是儿子继承父亲的东西,所以继承别人的那个类我们称之为子类,而被继承的类我们称之为父类,也称超类。一般情况下子类继承父类后可以无条件使用父类的属性和方法。

 

如何继承

Java中通过extends关键字进行继承,具体如下:

Java只支持单继承,也就是说一个儿子不能有两个父亲,一个子类只能继承一个父类;但是一个父亲可以有多个儿子。下面我们通过示例来更加形象地了解一下继承:

运行结果如下:

需要说明一下:一个Java文件里面只能有一个public类,且public类的类名必须与文件名相同,所有此处定义的father类没有用public修饰符。

 

继承的作用

继承的第一个作用就是开头引言所说的不需要了解别人干了什么,只管用就可以了。通过下面一个简单的例子就可以很直观地了解到继承的另一个作用了。现在有两种动物,一种是狗,另一种是羊,狗和羊都有吃这一个方法,都具有性别这一个属性,但是狗有吠的方法,而羊只有咩的方法,它们有相同点又有不同点,如果没有继承,我们需要通过以下代码实现:

如果有了继承,我们可以定义一个动物类,使狗和羊类继承动物类。动物类具有狗和羊的共同点,示例如下:

通过继承,我们可以减少大量重复的代码,使得代码不那么臃肿。

 

superthis关键字

superthis关键字常见于继承中。this用于访问本类(即自己)中的成员(属性、方法等统称成员),super则用来访问父类的成员。示例如下:

 

final关键字

用final关键字修饰的类是不可用被继承的。

:实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final