专业的JAVA编程教程与资源

网站首页 > java教程 正文

“全栈2019”Java第四十四章:继承

temp10 2024-10-03 01:29:50 java教程 12 ℃ 0 评论

难度

初级

学习时间

30分钟

“全栈2019”Java第四十四章:继承

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。

1.相同特性

大家看看以下四种物品有什么相同之处。

纸箱:

木箱:

布箱:

铁箱:

上面罗列了纸箱、木箱、布箱、铁箱四种箱子,分别对应着四种不同的描述。它们有各自的特性和行为。

我们来看看它们有什么相同点和不同点:

相同点:都有名字、材质、外观颜色;都可以存储物品。

不同点:名字不同,材质也不同,外观颜色也不同。

用类来描述它们:

纸箱:

木箱:

布箱:

铁箱:

大家发现了吗,有大量相同的代码,如果我们把它们的共性提取出来放在一个公共的地方,让它们都不必自己拥有这些共性的代码,这样就不用每个类里面都写一份相同的代码。在Java中使用继承就可以实现这个功能。

2.继承

继承是所有OOP语言和Java语言不可缺少的组成部分。当创建一个类时,总是在继承,因此,除非已明确指出要从其他类中继承,否则就是在隐式地从Java的标准根类Object进行继承。

继承的格式:

继承会自动得到基类中所有的字段和方法。

派生子类的类称为超类(也是基类或父类):

从另一个类派生的类称为子类(也是派生类,扩展类或子类):

Object除外,没有超类,每个类都有一个且只有一个直接超类(单继承)。在没有任何其他显式超类的情况下,每个类都隐式地是一个子类Object。

3.Java类层次结构

在java.lang包中定义的Object类定义并实现所有类共有的行为 - 包括我们编写的。 在Java平台中,许多类直接从Object派生,其他类派生自其中一些类,依此类推,形成类的层次结构。

Java平台中的所有类都是Object的后代。

在层次结构的顶部,Object是所有类中最通用的。 层次结构底部附近的类提供更全面的行为。

4.继承案例一

我们现在写一个父类,拥有四种箱子的共性部分,然后让他们继承父类。

箱子类:

纸箱:

木箱:

布箱:

铁箱:

大家可能看到父类Box里面方法多出了好多,哪些get、set方法是封装必备方法,要是分别写在四个子类里面那还要多,所以不要觉得代码变得更多了。

那么接下来我们去创建四个箱子的对象看看,分别显示输出它们。

Main类:

结果:

从运行结果来看,分别显示输出四种不同类型的箱子。

5.在构造方法中进行初始化

当然了,你也可以把初始化工作放在构造方法中去做:

纸箱:

木箱:

布箱:

铁箱:

6.将初始化值通过构造方法参数形式传入

你还可以将初始化值作为工作方法的参数传入进来:

纸箱:

木箱:

布箱:

铁箱:

我们看到还是有重复的代码,还能进一步优化,在后面讲解“继承与构造方法”时会具体说明。

5.继承案例二

狗:

猫:

用类来描述一下它们:

Dog类:

Cat类:

狗和猫它们也有共性,它们都是动物,我们也能抽取共性。

动物类:

我们看到只有狗和猫共性的事物,没有看家和抓老鼠方法,因为不是所有的动物都会看家和抓老鼠。看家是狗特有的,抓老鼠也是猫特有的。这两个方法不能抽取出来。

继承之后,狗和猫的类分别如下:

Dog类:

Cat类:

看起来简洁很多。

我们来创建出旺财和小灰灰:

Main类:

结果:

从运行结果来看,准确无误。

如果我们从构造方法里面传递参数进行初始化更好:

Dog类:

Cat类:

Main类:

结果:

从运行结果来看,准确无误。

我们可以看到这两个继承案例,都是抽取共同特性,代码得到服用。所以,可以将继承视作是对类的复用。

下一章我们将继续探讨继承中特性:字段在继承中的变化。

总结

  • 面向对象三大特性是封装、继承、多态。
  • 继承是所有OOP语言和Java语言不可缺少的组成部分。当创建一个类时,总是在继承,因此,除非已明确指出要从其他类中继承,否则就是在隐式地从Java的标准根类Object进行继承。
  • 继承会自动获得父类所有的字段和方法。
  • Java平台中的所有类都是Object的后代。
  • 可以将继承视作是对类对复用。

至此,Java中继承相关内容讲解先告一段落,更多内容请持续关注。

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

“全栈2019”Java第四十三章:封装

下一章

“全栈2019”Java第四十五章:super关键字

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号Gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号Gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

版权声明

原创不易,未经允许不得转载!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表