【继承顺序和方式,子类构造方法,protected 关键字,final 关键字】

news2024/11/19 8:32:44

文章目录

  • 子类构造方法
  • super和this
  • 继承关系上的执行顺序
  • protected 关键字
  • 继承方式
  • final 关键字
  • 总结


子类构造方法

子类继承父类的成员变量,那父类的成员变量怎么初始化呢?

要先初始化父类成员,子类的构造方法才能完成

class Animal{
    public String name;
    public int age;

    public Animal(String name,int age) {
        this.name = name;
        this.age = age;
    }
}

class Dog extends Animal{
    
    //子类构造方法
    public Dog(String name, int age){
        //只能调用一个构造方法,并且只能在第一行
        super(name,age);//调用父类的构造方法,帮助子类从父类继承的成员初始化
    }
    
    //普通成员方法
    public void bark () {
        System.out.println(this.name+"在汪汪叫");
    }
}

class Cat extends Animal{

    public Cat(String name, int age) {
        super(name,age);
    }
    public void miao() {
        System.out.println(this.name+"在喵喵叫");
    }
}
public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog("小小",10);
        dog.bark();
        Cat cat = new Cat("啾啾",8);
        cat.miao();
    }
}

super和this

【相同点】

  1. 都是Java中的关键字
  2. 只能在类的非静态方法中使用,用来访问非静态成员方法和字段
  3. 在构造方法中调用时,必须是构造方法中的第一条语句,并且不能同时存在

【不同点】
4. this是当前对象的引用,super相当于是子类对象中从父类继承下来部分成员的引用
2. 在非静态成员方法中,this用来访问本类的方法和属性,super用来访问父类继承下来的方法和属性
5. 在构造方法中:this(…)用于调用本类构造方法,super(…)用于调用父类构造方法,两种调用不能同时在构造方法中出现
6. 构造方法中一定会存在super(…)的调用,用户没有写编译器也会增加,但是this(…)用户不写则没有

继承关系上的执行顺序

  1. 父类静态代码块优先于子类静态代码块执行,且是最早执行
  2. 父类实例代码块和父类构造方法紧接着执行
  3. 子类的实例代码块和子类构造方法紧接着再执行
  4. 第二次实例化子类对象时,父类和子类的静态代码块都将不会再执行

protected 关键字

为了实现封装特性,Java中引入了访问限定符,主要限定:类或者类中成员能否在类外或者其他包中被访问。
在这里插入图片描述

在不同包中的子类,调用protected修饰的成员变量
在这里插入图片描述

继承方式

事物与事物之间的关系是很复杂的,在Java中只支持以下几种继承方式
在这里插入图片描述

总结:Java中不支持多继承,不希望出现超过三层的继承关系

final 关键字

nal关键可以用来修饰变量、成员方法以及类。

  1. 修饰变量或字段,表示常量(即不能修改)
    意思就是final修饰的变量,固定写死,不能再初始化了,
    因此这个a叫做常量
finalinta=10;
a=20;  //编译出错
  1. 修饰类:表示此类不能被继承
    final修饰了Test3类,Test类就不能继承Test3类了
    因此这个Test3类叫做密封类
    在这里插入图片描述

总结

学了很多知识点,一段代码有好几个关键字和方法啥的,开始进入混乱期…坚持就是胜利…

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

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

相关文章

解决:idea中代码文件背景变成特殊颜色(浅褐色),且代码智能提示完全消失,即使在新项目中创建同类型文件也会出现同样情况

解决:idea开发中代码文件背景变成浅褐色,且代码智能提示完全消失,不同项目新建同类型文件也会出现同样情况 一问题描述:1.idea开发中,使用idea的快捷提示组合键进行提示,但是手快点击确认了什么提示选项&am…

DSP开发例程(3): sys_print_to_uart

目录 DSP开发例程: sys_print_to_uart创建工程源码编辑os.capp.cfgmain.c 调试原理分析 DSP开发例程: sys_print_to_uart 在DSP 应用的执行过程中, 我们经常需要调用 System_printf() 来显示当前的执行状态. 不只是 System_printf() 函数, SYS/BIOS 打印信息的函数还包括: Sys…

橙河网络:国外问卷调查赚钱是真的吗?

大家好,我是橙河网络,今天聊一聊国外问卷调查赚钱是真的吗? 有不少人在第一次了解这个项目的时候,看到“海外”“国外”这些字眼的时候,心里都会犯嘀咕:这海外问卷调查项目能做吗?国外问卷调查…

使用 Pyro 和 PyTorch 的贝叶斯神经网络

一、说明 构建图像分类器已成为新的“hello world”。还记得当你第一次接触 Python 时,你的打印“hello world”感觉很神奇吗?几个月前,当我按照PyTorch 官方教程并为自己构建了一个运行良好的简单分类器时,我也有同样的感觉。 我…

Spring应用启动很慢?试试这个工具

前段时间搞应用启动优化的时候参考了这篇文章的很多观点,并基于此开发了此工具——spring-startup-analyzer。这是一个分析Spring应用启动过程的工具,通过采集Spring应用启动过程数据,生成交互式分析报告,用于分析Spring应用启动卡…

Netty进阶-黏包半包

黏包半包 1. 粘包与半包1.1 粘包现象1.3 现象分析1.4 解决方案方法1,短链接方法2,固定长度方法3,固定分隔符方法4,预设长度LengthFieldBasedFrameDecoder 1. 粘包与半包 1.1 粘包现象 服务端代码 Slf4j public class HelloWorl…

智能矩阵,引领商业新纪元!拓世方案:打破线上线下界限,开启无限营销可能!

在科技赋能商业大潮中,一切行业都在经历巨大变革,传统的营销策略被彻底改变,催生着无数企业去打造横跨线上线下、多维度、全方位的矩阵营销帝国。无数的成功案例已经告诉我们,营销不再只是宣传,而是建立品牌与消费者之…

JAVA实现校园失物招领管理系统 开源

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 招领管理模块2.2 寻物管理模块2.3 系统公告模块2.4 感谢留言模块 三、界面展示3.1 登录注册3.2 招领模块3.3 寻物模块3.4 公告模块3.5 感谢留言模块3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 基于VueSpri…

甲骨文真的要开放Java EE?

甲骨文表示,目前正在与可能的几个候选基金会,以及许可证持有者和社区在进行谈判。随着Java EE 8平台的确定,甲骨文在周四表示,目前正在考虑将Java Enterprise Edition技术转移到开源社区。 甲骨文在其博客中说道,这次的…

数据结构介绍与时间、空间复杂度

数据结构介绍 什么是数据结构?什么是算法?数据结构和算法的重要性 数据结构定义 数据结构是计算机科学中研究数据组织、存储和管理的一门学科。数据结构描述了数据对象之间的关系,以及对数据对象进行操作的方法和规则。 常见的数据结构 数…

解决node项目一个极度困难的捕获异常却无法读取异常信息的问题

这个项目是集成了第三方NeteaseCloudMusicApi项目的接口代码,我没有直接使用它的接口,因为需要再跑一个npm run开个端口,感觉很麻烦。 所以下定决心,使用拆分代码的方式,硬生生将这个api项目的部分api接口代码集成到了…

JavaScript变量和作用域简介

目录 变量 var let const 作用域 全局作用域 局部作用域 总结 JavaScript是一种广泛应用于网页开发的脚本语言。在JavaScript中,变量和作用域是非常重要的概念,它们决定了代码中数据的存储和访问方式。本文将介绍JavaScript中的变量和作用域&…

如何使用Abaqus进行摩擦生热仿真

Abaqus除了可以对结构进行强度分析,同样也有强大的固体传热分析功能,下面通过一个简单的实例演示Abaqus的双向热固耦合分析。 因为本案例涉及物体表面辐射,因此需要定义绝对零度和输入史蒂夫-波兹曼常数,如下: 本次分…

ESP8266,手机与电脑之间的TCP通讯

电脑端运行通讯猫调试助手,作为服务端: 电脑端 电脑的IP地址是: 192.168.2.232 手机与电脑之间的TCP通讯 手机端运行网络调试精灵,作为客户端: 手机端 如果从手机端点击"发送"按钮,则也会将"ghhh东方红广场"几个字发送到电脑上(服务端). ESP8266作为客户…

接口自动化测试框架搭建完整版

1、基本目录的搭建 report:静态输出目录(报告或者日志) data:静态输入目录(可以存放Excel数据,被读取的一些数据) utils:实用方法层(这里存放的是项目的公共方法,一般拿到别的项目可以直接使用,列如&…

【列存储学习总结】

在 OpenGauss 中,列存储是一种高效的数据存储方式,它在处理分析查询和数据仓库工作负载时具有很高的性能优势。列存储将表中的数据按列存储在磁盘上,而不是按行存储,这样可以极大地提高数据读取和分析操作的效率。当涉及大量数据的…

护眼灯买哪种好? 推荐五款儿童护眼台灯

台灯如何选择,随着人们生活水平的提高及科技的不断进步,台灯的品质也得到了极大的提高,在生活中很多时候都需要使用台灯,但是市面上的台灯那么多,台灯如何选择。本次小编为大家推荐五款好用的护眼灯。 1.书客护眼台灯L…

一款功能强大的视频编辑软件会声会影2024中文破解版安装教程教程含会声会影2024注册机下载

会声会影2023中文破解版是一款功能强大的视频编辑软件、大型视频制作软件、专业视频剪辑软件。会声会影专业视频编辑处理软件,可以用于剪辑合并视频,制作视频,屏幕录制,光盘制作,视频后期编辑、添加特效、字幕和配音等…

关于亚马逊 CodeWhisperer 的使用体验

Amazon CodeWhisperer 是亚⻢逊出品的一款基于机器学习的 AI 编程助手,可实时提供代码建议。现在已正式可用,面向个人提供免费服务,通过在各种流行的IDE里集成 CodeWhisperer(包括我们常用的 JetBrains 产品包及 Vscode 工具集&am…

Java实现快递管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快递区域模块2.4 快递货架模块2.5 快递档案模块 三、界面展示3.1 登录注册3.2 快递类型3.3 快递区域3.4 快递货架3.5 快递档案3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 …