关于java的继承

news2024/11/15 21:35:42

关于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.coloradmin.cn/o/1397347.html

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

相关文章

使用phpunit进行接口自动化测试

年初一个偶然的机会接触到了phpunit,一个用PHP编程语言开发的开源软件,也是一个单元测试框架,有效利用的话可以大大提高接口遍历的效率。废话不多说,直接干货。 1.安装 在php的目录下 1 2 pear channel-discover pear; pear in…

Gradle——基础

1、Gradle基础 1.1、Ant/Maven/Gradle对比 无论那种项目构建工具,都有自身的优势和劣势,所以选择一款最适合项目的就是最好的! 1.2、Gradle项目目录结构 Gradle项目默认目录结构和Maven项目的目录结构一致,都是基于约定大于配置…

HackTheBox - Medium - Linux - Health

Health Health 是一台中型 Linux 计算机,在主网页上存在 SSRF 漏洞,可利用该漏洞访问仅在 localhost 上可用的服务。更具体地说,Gogs 实例只能通过 localhost 访问,并且此特定版本容易受到 SQL 注入攻击。由于攻击者可以与 Gogs …

关于Windows 10的操作中心 ,看这篇文章就可以了

这篇文章介绍了Windows 10操作中心,也称为通知中心,以及如何使用它。操作中心会在需要你注意的事情时发送警报。 如何在操作中心中访问和解决通知 Windows操作中心显示为Windows任务栏右下角的发言气泡。图标下的数字表示你有未解析的通知。 通知会在…

企业微信无法正常启动 报错0xc0000142

报错内容如下,每次打开工作电脑时候企业微信一般会正常启动,但是有时候经常会出现下面这种错误,重启也解决不了,每次都得重装企业微信,今天整理了一下网上的方法,这个原因大概率是亿赛通。 解决办法&#x…

递归、搜索与回溯算法(专题六:记忆化搜索)

目录 1. 什么是记忆化搜索(例子:斐波那契数) 1.1 解法一:递归 1.2 解法二:记忆化搜索 1.2.1 记忆化搜索比递归多了什么? 1.2.2 提出一个问题:什么时候要使用记忆化搜索呢? 1.3 …

运维平台介绍:视频智能运维平台的视频质量诊断分析和告警中心

目 录 一、视频智能运维平台介绍 (一)平台概述 (二)结构图 (三)功能介绍 1、运维监控 2、视频诊断 3、巡检管理 4、告警管理 5、资产管理 6、工单管理 7、运维…

如何在Linux上部署1Panel面板并远程访问内网Web端管理界面

在Linux环境中部署1Panel面板,并实现安全的远程访问是一种高效管理服务器资源的方式。下面是如何实现这一目标的详细步骤。 1Panel面板的优势 易用性:1Panel提供了图形化的界面,使得非专业人士也能轻松管理服务器。 功能丰富:它…

3D Gaussian Splatting:论文原理分析

标题:3D Gaussian Splatting for Real-Time Radiance Field Rendering 作者:Bernhard Kerbl、Georgios Kopanas、Thomas Leimkhler和George Drettakis,来自法国Inria、Universit Cte dAzur和德国Max-Planck-Institut fr Informatik。 发表时…

mysql 为大表新增字段或索引

1 问题 mysql 为大表增加或增加索引等操作时,直接操作原表可能会因为执行超时而导致失败。解决办法如下。 2 解决办法 (1)建新表-复制表A 的数据结构,不复制数据 create table B like A; (2)加字段或索…

聚类算法(KMeans)模型评估方法(SSE、SC)及案例

一、概述 将相似的样本自动归到一个类别中,不同的相似度计算方法,会得到不同的聚类结果,常用欧式距离法;聚类算法的目的是在没有先验知识的情况下,自动发现数据集中的内在结构和模式。是无监督学习算法 二、分类 根据…

vue3开发移动端H5页面中video无交互自动播放完美解决方案

链接 官网:https://jsmpeg.com/ github:https://github.com/phoboslab/jsmpeg 官方例子:https://jsmpeg.com/perf.html 在线video转ts文件:https://convertio.co/zh/mp4-ts/ 踩坑 一、不用使用任何npm、yarn等安装 npm i jsmpe…

C#用Math.Round和double.TryParse方法实现四舍五入

目录 一、涉及到的知识点 1.double.TryParse()方法 2.Math.Round(Decimal, Int32) 方法 3.comboBox1没有选项 二、示例 1.源码 2.生成 一、涉及到的知识点 1.double.TryParse()方法 详见本文作者写的其他文章&#xff0…

消息中间件之Kafka(一)

1.简介 高性能的消息中间件,在大数据的业务场景下性能比较好,kafka本身不维护消息位点,而是交由Consumer来维护,消息可以重复消费,并且内部使用了零拷贝技术,性能比较好 Broker持久化消息时采用了MMAP的技…

像操作本地文件一样操作linux文件 centos7环境下samba共享服务搭建详细教程

1.安装dnf yum -y install dnf 2.安装samba dnf install samba -y 3.配置 3.1创建并设置用户信息 #创建用户 useradd -M -s /sbin/nologin samba echo 123|passwd --stdin samba mkdir /home/samba chown -R samba:samba /home/samba smbpasswd -a samba smaba设置密码示…

nodejs下载安装

一、node下载安装 官网下载 官网 根据自己电脑系统选择合适的版本进行下载,我这里选择window 64 位 下载完点击安装 打开cmd查看安装 此处说明下:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js…

实现仿ChatGPT光标跟随效果

先看效果 实现效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>光标闪烁效果</title>…

使用 MinIO 和 PostgreSQL 简化数据事件

本教程将教您如何使用 Docker 和 Docker Compose 在 MinIO 和 PostgreSQL 之间设置和管理数据事件&#xff0c;也称为存储桶或对象事件。 您可能已经在利用 MinIO 事件与外部服务进行通信&#xff0c;现在您将通过使用 PostgreSQL 自动化和简化数据事件管理来增强数据处理能力…

机器人导纳控制实现框架

Safe, Stable and Intuitive Control for Physical Human-Robot Interaction - 知乎关于文章《Safe, Stable and Intuitive Control for Physical Human-Robot Interactio》的简记。 Safe, Stable and Intuitive Control for Physical Human-Robot Interaction目的根据力导数作…

设计一个网页爬虫

定义 User Case 和 约束 注意&#xff1a;没有一个面试官会阐述清楚问题&#xff0c;我们需要定义Use case和约束 Use cases 我们的作用域只是处理以下Use Case&#xff1a; Service 爬取一批 url 生成包含搜索词的单词到页面的反向索引给页面生成标题和片段– 标题和片段是…