关于java中的Super详解

news2024/9/24 17:15:02

关于java中的Super详解

我们在上一篇文章中了解到了面向对象三大基本特征,继承,我们本篇文章中来了解一下Super😀。

一、Super和this调用属性

  • this:当前类中使用。
  • super:父类使用。

我们直接用代码来说明一下。

1、首先我们新建一个人类,一个学生类,然后让学生类去继承人类。

//人类
public class Person
{
	
}
//学生类
public class Student extends Person
{

}

2、我们在父类(人类)中,定义一个属性,用受到保护修饰符protected去声明一个名字name,然后在学生类(子类)里面声明一个私有属性name,并且在学生类(子类)定义一个方法去输出名字。

//人类
public class Person
{
	protected String name="xiaoming";
}
//学生类
public class Student extends Person
{
	private String name="ming";
    
    public void test(String name)
    {
        System.out.println(name);//传参的name
        System.out.println(this.name);//当前类的name
        System.out.println(super.name);//父类的name
    }
}

3、我们用main方法调用一下,创建学生类的对象。

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        student.test("羊");
    }
}

我们执行以下输出结果,可以发现,输出的东西也是我们定义属性赋值的内容。

羊
ming
xiaoming

进程结束.......

二、Super和this调用方法

1、我们在学生类和人类中,都定义一个输出的方法。

//人类
public class Person {

    protected String name="xiaoming";

    public void print()
    {
        System.out.println("Person");
    }
}
//学生类
public class Student extends Person
{
    private String name="ming";

    public void print()
    {
        System.out.println("Student");
    }

    public void test(String name)
    {
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
    }

    public void test1()
    {
        print();//当前类中的方法,但是不建议这样去写,因为会分不清
        this.print();//当前类中的方法
        super.print();//父类中的方法
    }
}

3、我们用main方法调用一下。

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        student.test1();
    }
}

4、我们执行以下输出结果。

Student
Student
Person

进程结束.....

5、如果把父类(人类)中的方法换成私有的方法,就会无法被调用,因为私有的东西无法被继承

三、隐藏的代码

我们在学构造器的时候,知道无参构造是被隐藏的,但是我们这里给它写出来,然后输出一句话,学生类和人类都写出来。

  • ALT+INS(快捷键)
//人类
public class Person {

    public Person() {
        System.out.println("Person无参执行");
    }
}

//学生类
public class Student extends Person
{
	 public Student() 
     {
        //隐藏代码:调用了父类的无参
        super();
        //调用父类构造器必须放在子类构造器的第一行
        System.out.println("Student无参执行");
    }
}

我们在main方法中只创建对象然后直接执行。

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
    }
}
Person无参执行
Student无参执行

进程结束......
  • 所以,隐藏代码调用了父类的无参(super();)
  • 调用父类构造器必须放在子类构造器的第一行。
  • 不写也可以,这里只是展示一下隐藏代码的样子😊。
  • 在父类中写了有参构造,必须要写出无参构造,如果不在父类写出无参,默认隐藏调用是无参,会导致程序报错。

四、super和this注意点

  • super

1、super调用父类的构造方法,必须在构造方法的第一个

2、super 必须只能出现在子类的方法或者构造方法中!

3、super和 this 不能同时调用构造方法!

  • this

1、代表的对象不同:

this:本身调用者这个对象

super: 代表父类对象的应用前提

2、没有继承也可以使用this

3、super:只能在继承条件才可以使用构造方法。

4、this();本类的构造

5、super();父类的构造

五、idea向右拆分

在这里插入图片描述

我们可以点击页面,右键,向右拆分或者向左拆分,来把代码分页,这样比较方便大家观看😊

  • ALT+1 关闭项目结构

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

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

相关文章

C#调用C++ dll异常排查

基本情况 最近在做的一款程序,长时间运行总会出现莫名的问题。有时是自动关闭,有时程序报错,有时调用的dll异常…… 提出假设——dll内存泄漏 由于开始与C组合作时,使用其提供的dll出现过数据读写时异常(内存操作异常…

Python 面向对象绘图(Matplotlib篇-16)

Python 面向对象绘图(Matplotlib篇-16)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

[AutoSar]BSW_OS 05 Autosar OS_Alarms

目录 关键词平台说明一、Timer1.1 配置 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c;芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC) >>>>>回到总目录<<<<<< 一…

kafka参数配置参考和优化建议 —— 筑梦之路

对于Kafka的优化&#xff0c;可以从以下几个方面进行思考和优化&#xff1a; 硬件优化&#xff1a;使用高性能的硬件设备&#xff0c;包括高速磁盘、大内存和高性能网络设备&#xff0c;以提高Kafka集群的整体性能。 配置优化&#xff1a;调整Kafka的配置参数&#xff0c;包括…

【GAMES101】Lecture 08 图形管线(实时渲染管线)与纹理映射

目录 图形管线 纹理映射 图形管线 给我一个三维模型&#xff0c;给我一个光照条件&#xff0c;我就能够得出渲染的结果&#xff0c;这些东西合起来就是Graphics Pipeline&#xff0c;图形管线&#xff0c;闫神愿称之为实时渲染管线&#xff0c;那下面这个流程图就是这个渲染…

MySQL缓冲池(Buffer Pool)深入解析:原理、组成及其在数据操作中的核心作用

在关系型数据库管理系统&#xff08;RDBMS&#xff09;中&#xff0c;性能优化一直是数据库管理员和开发者关注的焦点。作为最流行的开源RDBMS之一&#xff0c;MySQL提供了多种优化手段&#xff0c;其中InnoDB存储引擎的缓冲池&#xff08;Buffer Pool&#xff09;是最为关键的…

网络安全需要对网络风险有独特的理解

迷失在翻译中&#xff1a;网络风险解释的脱节现实 在古印度的一个经典故事中&#xff0c;几个蒙住眼睛的人接近一头大象&#xff0c;每个人检查不同的部位。有人触摸树干&#xff0c;认为它像一条蛇。另一个摸到了一条腿&#xff0c;认为它是一棵树。还有一个拿着象牙的人&…

C++大学教程(第九版)5.23星号组成的菱形图案 5.24修改星号组成的菱形图案

5.23题目 (星号组成的菱形图案)编写一个程序&#xff0c;打印以下的菱形图案。要求使用打印一个星号(*)、空格或者一个换行符的输出语句。尽量多用循环(使用嵌套 for 语句)&#xff0c;同时尽量减少输出语句的使用次数。 代码 #include <bits/stdc.h> using namespac…

Unity中URP下的SimpleLit片元着色器

文章目录 前言一、SimpleLit片元着色器大体框架1、传入 和 返回2、GPU实例化部分3、准备 BlinnPhong 光照模型计算需要的 SurfaceData4、准备 BlinnPhong 光照模型计算需要的 InputData5、进行 BlinnPhong 的计算、雾效颜色混合及透明度计算 二、准备SurfaceData1、SurfaceData…

消除游戏(寒假每日一题+模拟、优化)

题目 在一个字符串 S 中&#xff0c;如果 SiSi−1 且 Si≠Si1&#xff0c;则称 Si和 Si1 为边缘字符。 如果 Si≠Si−1 且 SiSi1&#xff0c;则 Si−1 和 Si 也称为边缘字符。 其它的字符都不是边缘字符。 对于一个给定的串 S&#xff0c;一次操作可以一次性删除该串中的所…

大数据开发之Hadoop(完整版+练习)

第 1 章&#xff1a;Hadoop概述 1.1 Hadoop是什么 1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 2、主要解决&#xff0c;海量数据的存储和海量数据的分析计算问题。 3、Hadoop通常是指一个更广泛的概念-Hadoop生态圈 1.2 Hadoop优势&#xff08;4高&#xf…

Centos7 如何设置开机启动某个程序

以设置自动启动sentinel-dashboard作为案例 要在CentOS 7上设置开机启动一个Java程序&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 进入应用程序的目录 cd /usr/localvim sentinel-dashboard.sh 2. 在sentinel-dashboard.sh 文件中 输入启动脚本 nohup java -D…

Redis高级系列-缓存双写一致性

Redis高级系列-缓存双写一致性 文章目录 Redis高级系列-缓存双写一致性1. 什么叫做缓存双写一致性&#xff1f;2. 缓存双写一致性有那些解决方案&#xff1f;2.1 Cache Aside Pattern(旁路缓存模式)延迟双删重试删除binlog订阅异步删除 2.2 Read Through/Write Through(读写穿透…

爬虫之牛刀小试(八):爬取微博评论

今天爬取的是微博评论。 可以发现其特点是下一页评论的max_id在上一页中。 于是代码如下&#xff1a; import requests import json import re import time headers {User-Agent: ,"Cookie": "","Referer": "https://m.weibo.cn/detail/4…

Elasticsearch 数据类型相关总结:快速参考指南【记录】

在Elasticsearch中&#xff0c;有多种数据类型可用于定义字段。 在开始了解数据类型之前&#xff0c;首先要知道&#xff0c;在Elasticsearch中&#xff0c;分词处理主要针对文本字段&#xff0c;而对于其他类型字段&#xff08;如数值、日期、布尔等&#xff09;&#xff0c;通…

绑定class,条件渲染,列表过滤,列表排序

目录​​​​​​​ 绑定class 条件渲染 列表过滤 列表排序 绑定class <div class"normal" :class"mood" click"changename">111{{name}}</div><div class"normal" :class"arr">111{{name}}</div…

使用golang对接微软Azure AI翻译

文章目录 一、官方地址二、准备工作三、代码示例 一、官方地址 https://learn.microsoft.com/zh-CN/azure/ai-services/translator/translator-text-apis?tabsgo 二、准备工作 创建服务 创建服务连接地址&#xff1a;https://portal.azure.com/#create/Microsoft.CognitiveS…

零基础学Python(3)— 注释、代码缩进和编码规范

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。在使用Python语言进行编程的时候&#xff0c;需要遵循一定的规范标准。本节课就带大家了解下Python语言在注释、缩进和编码方面的规范!~&#x1f308; 目录 &#x1f680;1.注释 &#x1f680;2.代码缩进 &#x1f68…

1.15io网络

子网掩码 1.由于对于一个网络下面的主机号还是很庞大&#xff0c;为了进一步划分网络&#xff0c;我们可以将主机号再次进行划分为两部分&#xff0c;分别是网段号和主机号 2.此时就引入的子网掩码的概念 3. 在引入子网掩码后&#xff0c;IP 网络号 子网号 主机号 4.子网…

UI设计中的插画运用优势(上)

1. 插画是设计的原创性和艺术性的基础 无论是印刷品、品牌设计还是UI界面&#xff0c;更加风格化的插画能够将不同的风格和创意加入其中&#xff0c;在激烈的竞争中更容易因此脱颖而出。留下用户才有转化。 2. 插画是视觉触发器&#xff0c;瞬间传达大量信息 我们常说「一图胜千…