首页 > 其他分享 >Day53 Super(继承核心关键词)详解

Day53 Super(继承核心关键词)详解

时间:2024-01-18 21:24:44浏览次数:27  
标签:Day53 name super Person 详解 Student 父类 Super public

Super(继承核心关键词)详解

Super注意点:

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

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

3.super和this 不能同时调用构造方法!(因为二者都要放在构造器的第一个无法实现)

4.super VS this:

A.代表的对象不同:

this:本身调用者这个对象

super:代表父类对象的引用

B.前提

this:没有继承也可以使用

super:只能在继承条件下才可以使用

C.构造方法

this(); 调用的是本类的构造

super();调用的是父类的构造!

Person

package com.oop.demo05;
//在Java中,所有的类,都默认直接或间接继承object
//person 人:父类
public class Person /* extends Object */ {

    public Person() {  //无参构造器
        System.out.println("Person无参执行了");
    }

    protected String name = "xiaobai";

    //私有的东西无法被继承  private
    public void print(){
        System.out.println("Person");
    }
}

Student

package com.oop.demo05;
//学生  is  人:派生类,子类
//子类继承了父类,就会拥有父类的全部方法!前提修饰符都是public
public class Student extends Person {

    public Student() {
        //隐藏代码:默认调用了父类的无参构造
        super();//调用父类的构造器,必须要在子类构造器的第一行
        //上面一行即类似的隐藏代码不写也是正常的  默认调用父类的无参
        System.out.println("Student无参执行了");
    }
    
    
    private String name = "baixiaofan";//这里用了private

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

    public  void test1(){
        print(); //按住ctrl 点击可以看到调用的在哪里  调用的是Student的print方法
        this.print(); //指代自己的print   子类的方法
        super.print();//父类的print方法
    }
    


    public  void test(String name){
        System.out.println(name); //这个name是String name 传递的参数  白小帆
        System.out.println(this.name);  //Student 的name     baixiaofan
        System.out.println(super.name); //父类Person的name    xiaobai
    }
}

Application

package com.oop.demo05;

public class Application {

    public static void main(String[] args) {

        Student student = new Student();//new Student的时候就调用了Person的无参(先) 及Student的无参(后)
        System.out.println("==============================");
        student.test("白小帆");
        System.out.println("==============================");
        student.test1();
    }
}

Application的结果:

Person无参执行了
Student无参执行了
==============================
白小帆
baixiaofan
xiaobai
==============================
Student
Student
Person

标签:Day53,name,super,Person,详解,Student,父类,Super,public
From: https://www.cnblogs.com/baixiaofan/p/17973421

相关文章

  • k8s探针详解
    一、探针类型Kubernetes(k8s)中的探针是一种健康检查机制,用于监测Pod内容器的运行状况。主要包括以下三种类型的探针:1、存活探针(LivenessProbe)2、就绪探针(ReadinessProbe)3、启动探针(StartupProbe)(自1.16版本引入)二、探针功能1、启动探针(StartupProbe)Kubernetes......
  • logback-spring.xml 的配置及详解(直接复制粘贴可用)
    一、注意实现logback-spring.xml中有三处需要根据实际业务进行修改,直接查找“(根据业务修改)”即可进行定位。如果不想修改,直接复制粘贴到自己系统运行也可以,不会报错。二、配置及详解application.yml配置#日志配置logging:config:classpath:logback-spring.xmllogba......
  • 克魔助手工具详解、数据包抓取分析、使用教程
    摘要本文介绍了克魔助手工具的界面和功能,包括数据包的捕获和分析,以及抓包过滤器的使用方法。同时提供了一些代码案例演示,帮助读者更好地理解和使用该工具。引言克魔助手是一款功能强大的网络抓包工具,可以帮助开发人员进行网络数据包的捕获和分析。它提供了直观的界面和丰富的功......
  • Java里static的详解类变量
    没有修饰的是普通变量,用static修饰的变量成为类变量,一个成员变量a,一个类变量b。可以看到,a是成员变量,b是类变量,当我们对指定对象改变成员变量时,只会改变当前对象的成员值,text2.a并无变化,这表明他们是独立的。当我们改变类变量的值时,输出不同对象的类变量时,发现它们都改变了,这很......
  • Unity3D代码混淆方案详解
    背景Unity引擎使用Mono运行时,而C#语言易受反编译影响,存在代码泄露风险。本文通过《QQ乐团》项目实践,提出一种适用于Unity引擎的代码混淆方案,以保护代码逻辑。 引言在Unity引擎下,为了防止代码被轻易反编译,需要采取相应的保护措施。本文将分享一种基于实践经验的可行方案,希望......
  • JavaScript到底应不应该加分号?JavaScript自动插入分号规则详解
    JavaScript提供了automaticsemicoloninsertion(ASI)自动插入分号规则,在不加分号的情况下,会自动补充分号来分隔不同语句。导致在继左大括号换行、tab和space圣战后,前端又出现了一场战争。并且随着那个男人加入这场讨论之后,关于是否应该加分号的讨论更是激烈了。ASI自......
  • MyBatis三级缓存详解
    MyBatis作为一款优秀的持久层框架,在处理数据库操作时提供了丰富的功能,其中之一就是三级缓存。本篇博文将深入介绍MyBatis的三级缓存,通过详细的例子带你了解三级缓存的使用和原理。背景MyBatis的三级缓存是指在执行SQL语句时,可以将查询的结果缓存在三个不同的范围内,分别是LocalC......
  • SpringSecurity-认证流程源码级详解
    自定义用户认证逻辑处理用户信息获取逻辑:UserDetailsService处理用户校验逻辑:UserDetails处理密码加密解密:PasswordEncoder认证处理流程以表单认证为例:从发起认证请求到认证过滤器,接着认证成功后,响应从认证过滤器返回的整个过程。SpringSecurity做了什么,设计到了哪些类?他......
  • Java异步编程详解
    在现代应用程序开发中,异步编程变得越来越重要,特别是在处理I/O密集型任务时。Java提供了一套强大的异步编程工具,使得开发者能够更有效地处理并发任务。本篇博文将深入探讨Java中异步编程的方方面面,通过具体例子详细说明异步编程的实践。异步编程的背景在传统的同步编程模型中,任务......
  • RocketMQ 中冷热分离的随机索引模块详解
    作者:苏昌盛消息系统中随机索引的特点RocketMQ广泛使用于各类业务场景中,在实际生产场景中,用户通常会选择消息ID或者特定的业务Key(例如学号,订单号)来查询和定位特定的一批消息,进而定位分布式系统中的复杂问题。传统方案下,消息索引的存储是基于数据库系统或者基于本地文件系统实现......