关于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.rhkb.cn/news/241859.html

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

相关文章

逻辑运算

目录 AND OR NOT Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 逻辑运算可以保证连接多个条件,连接主要使用 AND、OR 、NOT完成 AND 1.查询职位不是办事员,但是工资低于 300 的员工信息 这个范例可以理…

Windows系统字体尺寸学习

调用GetTextMetrics来获得字体尺寸信息, 函数返回设备描述表中当前选定的字体信息; 返回值到TEXTMETRIC类型的结构中; 返回字段值的单位取决于当前设备描述表映射方式;默认映射方式是MM_TEXT,值的单位是像素; 前7个字…

脱离于ASP.NET 和Visual Studio编辑Razor脚本

Razor Pad是一个编辑Razor脚本的工具,脱离于ASP.NET 和Visual Studio。 github地址:GitHub - RazorPad/RazorPad: RazorPad is a quick and simple stand-alone editing environment that allows anyone (even non-developers) to author Razor templat…

Python项目——搞怪小程序(PySide6+Pyinstaller)

1、介绍 使用python编写一个小程序,回答你是猪吗。 点击“是”提交,弹窗并退出。 点击“不是”提交,等待5秒,重新选择。 并且隐藏了关闭按钮。 2、实现 新建一个项目。 2.1、设计UI 使用Qt designer设计一个UI界面&#xff0c…

Three.JS教程1 环境搭建、场景与相机

Three.JS教程1 环境搭建、场景与相机 一、Three.JS简介二、环境搭建1. 开发准备2. 安装 three.js3. 新建文件index.htmlmain.js 4. 关于附加组件5. 启动 三、创建场景1. 场景的概念2. 相机的概念3. 相机的几个相关概念(1)视点(Position&#…

ctfshow php特性(web89-web101)

目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 php特性(php基础知识) web89 <?php include("flag.php"); highlight_file(_FILE_);if(isset($_GET[num])){$num$_GET[num];if(preg_match("/[0-9]/&…

【征服redis2】redis的事务介绍

目录 目录 1.redis事务介绍 2 事务出错的处理 3.Java如何使用redis事务 1.redis事务介绍 在前面我们介绍了redis的几种典型数据结构和应用&#xff0c;本文我们来看一下redis的事务问题。事务也是数据库的重要主题&#xff0c;熟悉关系型数据库的读者应该对事务比较了解&a…

深度学习记录--偏差/方差(bias/variance)

误差问题 拟合神经网络函数过程中会出现两种误差&#xff1a;偏差(bias)和方差(variance) 偏差和误差的区别 欠拟合(underfitting) 当偏差(bias)过大时&#xff0c;如左图&#xff0c;拟合图像存在部分不符合值&#xff0c;称为欠拟合(underfitting) 过拟合(overfitting) …

【Linux install】Ubuntu和win双系统安装及可能遇到的所有问题

文章目录 1.前期准备1.1 制作启动盘1.2关闭快速启动、安全启动、bitlocker1.2.1 原因1.2.2 进入BIOSshell命令行进入BIOSwindows设置中高级启动在开机时狂按某个键进入BIOS 1.2.3 关闭Fast boot和Secure boot 1.3 划分磁盘空间1.3.1 查看目前的虚拟内存大小 2.开始安装2.1 使用…

2018年认证杯SPSSPRO杯数学建模C题(第二阶段)机械零件加工过程中的位置识别全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 基于轮廓提取与图像配准的零件定位问题研究 C题 机械零件加工过程中的位置识别 原题再现&#xff1a; 在工业制造自动生产线中&#xff0c;在装夹、包装等工序中需要根据图像处理利用计算机自动智能识别零件位置&#xff0c;并由机械手将零件…

还在手动复制文章吗?教你如何一键将文章从notion同步到WordPress

本文会给大家介绍如何在WordPress上安装一个插件&#xff0c;实现将notion上写的文章自动同步到WordPress上&#xff0c;从而提高写作效率&#xff0c;接下来请跟随我的脚步一起来操作吧&#xff01; 一、插件安装 在WordPress后台添加新插件页面中搜索“notion”&#xff0c;…

小程序样例1:简单待办列表

基本功能&#xff1a; 显示所有待办列表&#xff08;点击不同的文本进行显示&#xff09; 没完成的待办 已完成的待办 新建待办test 清除待办foo 代码js文件&#xff1a; //index.js //获取应用实例 const app getApp(); Page({data: {todo: ,todos: [{"id": 1474…

【动态规划】【C++算法】741摘樱桃

作者推荐 【动态规划】【数学】【C算法】18赛车 涉及知识点 动态规划 LeetCode741 摘樱桃 给你一个 n x n 的网格 grid &#xff0c;代表一块樱桃地&#xff0c;每个格子由以下三种数字的一种来表示&#xff1a; 0 表示这个格子是空的&#xff0c;所以你可以穿过它。 1 表…

【设计模式】腾讯二面:自动贩卖机/音频播放器使用了什么设计模式?

状态模式是什么&#xff1f; 状态模式&#xff0c;也被称作状态对象模式&#xff0c;是一种行为设计模式。 当一个对象的内在状态改变时&#xff0c;允许改变其行为&#xff0c;这个对象看起来像是改变了其类。 它让对象在其内部状态改变时改变自己的行为。外部调用者无需了…

Spring Boot程序的打包与运行:构建高效部署流程

引言 在现代应用开发中&#xff0c;高效的打包和部署流程对于项目的开发、测试和上线至关重要。Spring Boot作为一种快速开发框架&#xff0c;提供了方便的打包工具和内嵌式的Web服务器&#xff0c;使得打包和运行变得更加简单。本文将研究在Spring Boot应用中如何进行打包&am…

MyBatisPlus学习笔记三-核心功能

接上篇&#xff1a; MyBatisPlus学习笔记二-CSDN博客 1、核心功能-IService开发基础业务接口 1.1、介绍 1.2、引用依赖 1.3、配置文件 1.4、用例-新增 1.5、用例-删除 1.6、用例-根据id查询 1.7、用例-根据ids查询 2、核心功能-IService开发复杂业务接口 2.1、实例-更新 3、…

【C语言】编译和链接深度剖析

文章目录 &#x1f4dd;前言&#x1f320; 翻译环境和运行环境&#x1f309;翻译环境 &#x1f320;预处理&#xff08;预编译&#xff09;&#x1f309;编译 &#x1f320;词法分析&#x1f320;语法分析 &#x1f309;语义分析&#x1f320;汇编 &#x1f309; 链接&#x1f…

KubeSphere 核心实战之二【在kubesphere平台上部署redis】(实操篇 2/4)

文章目录 1、登录kubesphere平台2、redis部署分析3、redis容器启动代码4、kubesphere平台部署redis4.1、创建redis配置集4.2、创建redis工作负载4.3、创建redis服务 5、测试连接redis 在kubesphere平台上部署redis应用都是基于redis镜像进行部署的&#xff0c;所以所有的部署操…

[AI]文心一言出圈的同时,国外的ChatGPT-4.5最新资讯

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言4.5key价格泄漏ChatGPT4.0使用地址ChatGPT正确打开方式最新功能语音助手存档…

Spring Cloud 微服务中 gateway 网关如何设置健康检测端点

主要是为了让 k8s 识别到网关项目已经就绪&#xff0c;但是又不想在里面通过 Controller 实现。因为在 Controller 中这样做并不是最佳实践&#xff0c;因为 Gateway 的设计初衷是专注于路由和过滤&#xff0c;而不是业务逻辑的处理。 在 Gateway 中配置健康检查端点可以通过以…