关于java的继承

关于java的继承

我们在上一篇文章中,了解到了封装,我们本篇文章来介绍一下面向对象的第二大特点,继承,还是遵循结合现实生活中的实际情况,理解着去学习,能更好的加深印象😀。

一、继承

  • 继承的本质:是对某一批类的抽象,从而实现对现实世界更好的建模。
  • extends的意思是“扩展”,子类是父类的扩展。

我们新建一个软件包,然后在这个里面,新建一个人类,学生类,老师类。

package oop.Demo05;
//Person 人  :  父类
public class Person 
{}

我们知道,学生类也是人类,所以我们新建一个学生类,然后继承人类。

package oop.Demo05;
//学生 is 人  :  派生类(子类)
public class Student extends Person 
{}

老师类也是人类,我们再新建一个老师类,然后继承人类。

package oop.Demo05;
//Teacher is 人  : 派生类(子类)
public class Teacher extends Person
{}
  • java类中,只有单继承,没有多继承!

  • 继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖,组合,聚合等。

  • 继承关系的两个类,一个是子类(派生类),一个为父类(基类),子类继承父类,使用关键字extends来表示。

  • 子类和父类之间,从意义上讲应该具有“ is a”的关系。

  • 子类可以继承父类的所有方法。

1、我们在父类(Person类)中,定义一个方法,“说你好”的方法。

package oop.Demo05;
//Person 人
public class Person {public void say(){System.out.println("Hello");}
}

2、我们的子类(Student类)继承了父类,所以在Student类里面我们什么方法都不写。

package oop.Demo05;
//学生 is 人  :  派生类(子类)
public class Student extends Person 
{}

3、我们通过main方法,来new一个Student类的对象,看是否可以调用方法。

package oop.Demo02;import oop.Demo05.Student;public class Application {public static void main(String[] args) {Student student = new Student();student.say();//发现这里可以直接调用}
}

我们执行以下代码,可以看到输出结果。

Hello进程结束.......

4、不光子类可以继承父类的方法,还可以继承属性,但是前提是,父类中的属性是public

package oop.Demo05;
//Person 人
public class Person {public int money=10_0000_0000;public void say(){System.out.println("Hello");}
}

我们输出一下student.money。

package oop.Demo02;import oop.Demo05.Student;public class Application {public static void main(String[] args) {Student student = new Student();System.out.println(student.money);}
}

我们执行以下代码,可以看到输出结果。

1000000000进程结束.......

5、但是如果把修饰符public公有的,换成private私有的,继承了也无法调用。

二、四个修饰符

  • public(公有的)

  • default(默认的)

  • protected(受保护的,protected与private基本相似,只有在继承时有较大的区别。继承的类可以访问protected成员,但是不能访问private成员。)

  • private(私有的)

  • 虽然私有的属性无法被继承,但是可以用get set方法,去变相调用。

三、object

我们在子类或者父类里面,按下Ctrl+H 就会跳转到继承结构。

在这里插入图片描述

在这里我们发现,Person上面还有一个类,Object,Person类继承了Object类。

如果我们在Person中,什么方法也不写,但是创建一个person对象的时候,仍然可以使用方法,如下代码。

package oop.Demo02;import oop.Demo05.Person;public class Application {public static void main(String[] args) {Person person = new Person();person.hashCode();//依旧可以使用方法}
}
  • 在java中,所有的类,都默认直接或者间接继承Object类

  • 继承里面还有两个重点,一个super,一个方法的重写,我们放在后边详细去说明😀。

  • java类中,只有单继承,没有多继承!

  • 一个儿子只能有一个爸爸,一个爸爸可以有多个儿子,就是学生类可以继承人类,但是人类可以被老师类继承。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++、QT 数字合成游戏

一、项目介绍 数字合成游戏 基本要求: 1)要求游戏界面简洁美观,且符合扫雷的游戏风格。 2)需要有游戏操作或者规则说明,方便玩家上手。 3)需具有开始游戏,暂停游戏,结束游戏等方便玩…

Java17新特性详解含示例代码(值得珍藏)

1. 概述 Java 17 是 Java 开发工具包(JDK)的一个重要版本,它带来了一系列的新特性和改进,以进一步增强 Java 语言的功能和性能。以下是 Java 17 中的一些主要新特性及其详细说明。 2. 新特性详解 JEP 356: Enhanced Pseudo-Ran…

【​电力电子在电力系统中的应用​】6 滞环电流控制的PWM整流器 + STATCOM整流器 + APF仿真

【仅供参考】 【2023.06西南交大电力电子在电力系统中的应用】 目录 步骤一:基于滞环电流控制的PWM整流器仿真 1.1 仿真要求 1.2 仿真电路原理及设计 1.2.1 主电路的搭建 1.2.2 控制电路的搭建 1.3 波形分析 步骤二:从PWM整流器到STATCOM仿真 2…

全等三角形定率

一.有两角夹一边分别相等的两个三角形全等 数学证明: 设△ A B C 与△ A 1 B 1 C 1 ∠ B ∠ B 1 , ∠ C ∠ C 1 , B 1 C 1 B C 设△ABC与△A_1B_1C_1∠B∠B_1,∠C∠C_1,B_1C_1BC 设△ABC与△A1​B1​C1​∠B∠B1​,∠C∠C1​,B1​C1​BC ①移动 ∠ B 1 与 ∠ B 重合 , 边 B…

Android WorkManager入门(二)

WorkManager入门 上一篇前言创建 WorkRequest并提交 定时的任务(PeriodicWorkRequest)配合约束使用定义执行范围失败后的重试为WorkRequest打上TAG其他取消方法 传参和返回参数总结参考资料 上一篇 Android WorkManager入门(一) …

EMQX安装和Java使用

一、EMQX介绍 EMQX是大规模分布式MQTT消息服务器,可以高效可靠连接海量物联网设备,实时处理分发消息与事件流数据,助力构建关键业务的物联网与云应用。EMQX 作为物联网应用开发和物联网平台搭建必须用到的基础设施软件,主要在边缘…

VSCode使用Makefile Tools插件开发C/C++程序

提起Makefile,可能有人会觉得它已经过时了,毕竟现在有比它更好的工具,比如CMake,XMake,Meson等等,但是在Linux下很多C/C源码都是直接或者间接使用Makefile文件来编译项目的,可以说Makefile是基石…

qt学习:进度条,水平滑动条,垂直滑动条+rgb调试实战

目录 水平滑动条,垂直滑动条 常用信号 进度条 常用信号 修改进度条 例子 rgb调色 配置ui界面 编写3个进度条的事件函数 添加链表容器和按钮索引 在.h里的类定义 初始化链表容器和按钮索引 编写添加颜色的按钮点击事件函数 效果 水平滑动条&#xff0c…

Java-初识正则表达式 以及 练习

目录 什么是正则表达式? 1. 正则表达式---字符类(一个大括号匹配一个字符): 2. 正则表达式---预字符类(也是匹配一个字符): 正则表达式---数量词 (可以匹配多个字符)…

【前后端的那些事】15min快速实现图片上传,预览功能(ElementPlus+Springboot)

文章目录 Element Plus SpringBoot实现图片上传,预览,删除效果展示 1. 后端代码1.1 controller1.2 service 2. 前端代码2.1 路由创建2.2 api接口2.2 文件创建 3. 前端上传组件封装 前言:最近写项目,发现了一些很有意思的功能&…

网络安全产品之认识WEB应用防火墙

随着B/S架构的广泛应用,Web应用的功能越来越丰富,蕴含着越来越有价值的信息,应用程序漏洞被恶意利用的可能性越来越大,因此成为了黑客主要的攻击目标。传统防火墙无法解析HTTP应用层的细节,对规则的过滤过于死板&#…

移动云助力智慧交通数智化升级

智慧交通是在整个交通运输领域充分利用物联网、空间感知、云计算、移动互联网等新一代信息技术,综合运用交通科学、系统方法、人工智能、知识挖掘等理论与工具,以全面感知、深度融合、主动服务、科学决策为目标,推动交通运输更安全、更高效、…

软件设计师5--CISC与RISC

软件设计师5--CISC与RISC 考点1:CISC与RISC有什么不同考点2:CISC与RISC比较,分哪些维度例题: 考点1:CISC与RISC有什么不同 考点2:CISC与RISC比较,分哪些维度 例题: 1、以下关于RISC…

SD-WAN组网设计原则:灵活、安全、高效

在实现按需、灵活和安全的SD-WAN组网方案中,我们必须遵循一系列关键的设计原则,以确保网络的可靠性和效率。通过以下几点设计原则,SD-WAN能够满足企业对灵活性、安全性和高效性的迫切需求。 灵活的Overlay网络互联 SD-WAN通过IP地址在站点之间…

Unicode编码

文章目录 前言一、Unicode ?二、前端工程师使用Unicode三、Javascript中处理 Unicode总结 前言 一、Unicode ? Unicode 是一种字符编码标准,旨在为世界上所有的字符(包括各种语言、符号和特殊字符)提供唯一的数字标识…

深度求索开源国内首个 MoE 大模型 | DeepSeekMoE:在专家混合语言模型中实现终极专家专业化

文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 在大语言模型时代,混合专家模型(MoE)是一种很有前途的架构,用于在扩展模型参数时管理计算成本。然而&a…

旅游项目day03

1. 前端整合后端发短信接口 2. 注册功能 后端提供注册接口,接受前端传入的参数,创建新的用户对象,保存到数据库。 接口设计: 实现步骤: 手机号码唯一性校验(后端一定要再次校验手机号唯一性&#xff09…

Vray渲染效果图材质参数设置

渲染是创造出引人入胜视觉效果的关键步骤,在视觉艺术领域尤为重要。不过,渲染作为一个资源密集型的过程,每当面对它时,我们往往都会遭遇到时间消耗和资源利用的巨大挑战。幸运的是,有几种方法能够帮助我们优化渲染&…

【51单片机】数码管的静态与动态显示(含消影)

数码管在现实生活里是非常常见的设备,例如 这些数字的显示都是数码管的应用。 目录 静态数码管:器件介绍:数码管的使用:译码器的使用:缓冲器: 实现原理:完整代码: 动态数码管&#…

Apache安全及优化

配置第一台虚拟机 VM1网卡 yum仓库 挂载磁盘 上传3个软件包到/目录 到/目录下进行解压缩 tar xf apr-1.6.2.tar.gz tar xf apr-util-1.6.0.tar.gz tar -xjf httpd-2.4.29.tar.bz2 mv apr-1.6.2 httpd-2.4.29/srclib/apr mv apr-util-1.6…