当前位置: 首页 > news >正文

java中的继承

之前我们了解过了什么是类,什么是对象,那么我们就来深入了解一下什么是继承和多态

继承

是什么?

我们可以顾名思义,这个词的意思我们并不陌生那这个继承在Java中是如何体现的呢?首先假如你定义了两个类,一个是cat,一个是dog,cat和dog都会有他们的名字吧,都会有年龄吧,这些你都在类里面定义了,那么我们是否可以把这些都归结到一个类类里面去是可以的,我们再定义一animal的类来汇总这些共有的特征,然后再由其他类来继承

父类和子类

子类继承父类,被继承的就是父类,例如我刚刚所说的animal这个类,就是dog和cat这两个类的父类,当子类继承父类之后,父类的成员方法和成员变量都会被子类所继承,我这里没说构造方法是因位它有点特别,后面会提到。

补充:父类也叫超类,基类;子类也叫派生类,扩展类。只不过父类和子类是我觉得顺口的读法、

如何去继承

这里直接用图片效果会更好,通过子类estends父类继承,这样就可以达到继承的目的,简洁明了

如何访问成员

通过子类创建的对象也是可以直接访问父类的成员的

可以看上面两幅图,父类的name可以直接通过dog.name来访问,当然成员方法也是同理,不过你们或许会发现我使用了构造方法,是的,当父类中存在构造方法是=时,要先给父类的构造方法赋值,我们要在子类中也创建构造方法,构造方法之间的相互引用要用到this,肯定有人会好奇为什么我这里使用的是super,我下面来单独解释这两个

this和super

其实没那么多弯弯绕绕,我直接通俗一点,this可以把他当成指向子类成员和父类成员,而super特指父类成员,当子类和父类没有重名的成员变量时,this就都可以指向,但是一旦有重名时,this会指向子类而不是父类,这时候就只能用super,父类的构造方法,要用super来引用,当成员方法同名时,如果直接访问,只能访问到子类而不是父类

可以看到引用的是子类的bark而不是父类的

继承与组合

继承类似于小类是大类的意思,而组合是大类包含类的意思,这么说有点抽象,我来举个例子,汽车有发动机吧,但我们不能说发动机是汽车吧,发动机是汽车的组成部分,这两个关系就可以是组合,下面图很好的对比了二者的区别

结语

本来我想将多态一并说完,但我觉得和抽象类接口放在一起或许会更好,那我们就下一篇见吧,如果我有说错的地方,还请大佬指出,共同进步

http://www.dtcms.com/a/324846.html

相关文章:

  • Flutter开发 LinearProgressIndicato、CircularProgressIndicator
  • django基于Python的设计师作品平台的数据可视化系统设计与实现
  • QT的常用控件说明
  • Java基础—解析注解
  • 游戏常用运行库合集:一键解决游戏兼容性问题
  • 锂电池SOH预测 | 第35讲 Matlab基于BiLSTM的锂电池健康状态估计(锂电池SOH预测),附锂电池最新文章汇集
  • scanpy单细胞转录组python教程(二):单样本数据分析之数据质控
  • springboot的基础要点
  • 【Task3】【Datawhale AI夏令营】多模态RAG
  • 3.4路由守卫
  • Words or Vision Do Vision-Language Models Have Blind Faith in Text
  • Java中new的相关知识
  • nginx-主配置文件
  • Redis的批处理优化
  • 【高等数学】第八章 向量代数与空间解析几何——第六节 空间曲线及其方程
  • ECP HRFORM 提示ADS服务异常
  • 【嵌入式电机控制#补充3】SDK电机控制台的功能
  • C9800在NAT设备之后怎么办?
  • [创业之路-541]:经营分析会 - 企业的经营分析会,研发负责人负责提供哪些信息?
  • Linux810 shell 条件判断 文件工具 ifelse
  • 【牛客刷题】小红的项链(字节跳动面试题)
  • Linux操作系统从入门到实战(十七)进程与进程基本概念
  • doubletrouble靶机攻略
  • Docker 数据卷的核心原理与管理逻辑
  • 【数据结构与算法-Day 14】先进先出的公平:深入解析队列(Queue)的核心原理与数组实现
  • 端口扫描器用户使用手册 (EXE版)
  • JavaScript 变量:数据存储的核心机制
  • C++ 黑马 内存分配模型
  • 详解Windows(十六)——计划任务
  • Linux安装Jenkins-2.432,jdk17