一文读懂继承性

简介: 一文读懂继承性

面向对象特征之一:继承性

1.为什么要有继承?

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可。

2.此处的多个类称为子类(派生类),单独的这个类称为父类(基类 或超类)。可以理解为:“子类 is a 父类”

3.类继承语法规则:

class Subclass extends SuperClass{ }

4.作用:

  • 继承的出现减少了代码冗余,提高了代码的复用性。
  • 继承的出现,更有利于功能的扩展。
  • 继承的出现让类与类之间产生了关系,提供了多态的前提
  • 子类继承了父类,就继承了父类的方法和属性。
  • 在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和 方法。
  • 在Java 中,继承的关键字用的是“extends”,即子类不是父类的子集, 而是对父类的“扩展”。

5.关于继承的规则:

子类不能直接访问父类中私有的(private)的成员变量和方法。

image.png

注意:

Java只支持单继承和多层继承,不允许多重继承

  • 一个子类只能有一个父类
  • 一个父类可以派生出多个子类
  • class SubDemo extends Demo{ } //ok
  • class SubDemo extends Demo1,Demo2…//error

image.png

单继承与多层继承举例

image.png

方法的重写

  • 定义:
    在子类中可以根据需要对从父类中继承来的方法进行改造,也称 为方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。
  • 要求:

1.子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表

2.子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型

3.子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限

4.子类不能重写父类中声明为private权限的方法 4. 子类方法抛出的异常不能大于父类 被重写方法的异常

注意:

子类与父类中同名同参数的方法必须同时声明为非static的(即为重写),或者同时声明为 static的(不是重写)。因为static方法是属于类的,子类无法覆盖父类的方法。

image.png

相关文章
|
Linux
centos 8 换阿里源
centos 8 换阿里源
2872 0
|
设计模式 人工智能 算法
策略模式的应用场景有哪些?
【7月更文挑战第2天】策略模式的应用场景有哪些?
623 1
|
存储 大数据 虚拟化
【云计算与大数据技术】虚拟化简介及虚拟化的分类讲解(图文解释 超详细)
【云计算与大数据技术】虚拟化简介及虚拟化的分类讲解(图文解释 超详细)
1232 0
|
数据采集 数据可视化 定位技术
倾斜摄影教程:无人机航拍后使用ContextCapture生成 3D模型
倾斜摄影建模利用多角度影像生成高精度三维模型,广泛应用于城市规划、遗产保护等领域。通过无人机拍摄与专业软件处理,实现真实感强、自动化程度高的实景建模。
倾斜摄影教程:无人机航拍后使用ContextCapture生成 3D模型
|
11月前
|
弹性计算 Ubuntu Linux
阿里云服务器公共镜像、社区镜像、自定义镜像、共享镜像、云市场镜像区别及选择参考
阿里云服务器镜像有公共镜像、自定义镜像、共享镜像、镜像市场、社区镜像可选,对于新手用户来说,不知道他们之间的区别,因此往往不知道如何选择,本文为大家介绍他们之间的区别以及选择参考。
2134 12
|
运维 安全 数据安全/隐私保护
网工记背配置基本命令(5)----SNMP配置
网工记背配置基本命令(5)----SNMP配置
260 0
|
机器学习/深度学习 数据可视化 PyTorch
TensorFlow与PyTorch框架的深入对比:特性、优势与应用场景
【5月更文挑战第4天】本文对比了深度学习主流框架TensorFlow和PyTorch的特性、优势及应用场景。TensorFlow以其静态计算图、高性能及TensorBoard可视化工具适合大规模数据处理和复杂模型,但学习曲线较陡峭。PyTorch则以动态计算图、易用性和灵活性见长,便于研究和原型开发,但在性能和部署上有局限。选择框架应根据具体需求和场景。
1529 4
|
Python Windows
Pycharm2021安装及激活教程
Pycharm2021安装及激活教程
1967 0
|
开发工具 数据安全/隐私保护
KALI系统安装后的基本配置
把国外的仓库源更换为国内的仓库源 在这里我建议大家使用ustc中科大的源 编辑 /etc/apt/sources.list 文件, 在文件最前面添加以下条目: deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib 更改完 sources.list 文件后请运行 sudo apt-get update 更新索引以生效。 在这里我使用VIM编辑器来进行编辑,
404 0
KALI系统安装后的基本配置
|
网络安全
【Anaconda】无法打开Anaconda Navigator的解决方法
【Anaconda】无法打开Anaconda Navigator的解决方法