代码编织梦想

/**
 * 关于关键字super
 * 1.super是一个关键字,全部小写
 *    super与this对比着学习
 *    this:
 *       - 能出现在实例方法和构造方法中
 *       - 语法结构是:"this."、和"this()"
 *       - this不能使用在静态方法中
 *       - this.大多数情况下可以省略(在区分实例变量和局部变量时不可以省略。比如set方法中和构造方法中)
 *       - this() 只能出现在构造方法的第一行,通过当前的构造方法去调用"本类中"其他的构造方法,目的是:代码复用
 *    super:
 *       - 能出现在实例方法和构造方法中
 *       - 语法结构是:"super."、和"super()"
 *       - super不能使用在静态方法中
 *       - super.大多数情况下可以省略
 *       - super.什么时候不能省略呢?
 *              父类和子类中有同名属性,或有同样的方法,想在子类中访问父类的该属性或方法,super.不能省略.
 *       - super() 只能出现在构造方法的第一行,通过当前的构造方法去调用"父类中"其他的构造方法,
 *                 目的是:创建子类对象的时候,先初始化父类型特征(并不是创建独立的对象)。
 *       - 重要结论:当一个构造方法第一行既没有this(),也没有super(),默认会有一个super();表示通过当前子类的构造方法
 *         调用父类的无参构造方法,所以必须要保证父类的无参构造方法是存在的。
 *       - this()和super()不能共存,因为他们都需要出现在构造方法的第一行
 *       - 创建子类对象时,无论如何 父类中的构造方法(无参构造或有参构造)总有一个会被执行。
 *       - java语言中不管是new什么对象,老祖宗object类的无参是构造方法一定会执行(object类的无参是构造方法处于"栈顶部")。
 *             栈顶部的特点是:最后调用,但最先执行结束(后进先出原则)
 *       - super 不是引用,它也不保存某个对象的内存地址,所以它也不指向任何对象,它只是代表当前对象内部的那一块父类型特征。
 *       * super的使用:
 *              super.属性名      [访问当前对象父类的属性]
 *              super.方法名()    [访问当前对象父类的方法]
 *              super()           [调用父类的构造方法]
 */

/**
 * 判断以下代码指向顺序
 */
public class SuperText {
    public static void main(String[] args) {
        new Z();
    }
}
class X{
    public X() {    //父类的这个构造方法最后被调用,最先执行
        //在此构造方法的第一行默认有一行代码没有this();也没有super();就默认存在super();存在,它会调用Object的无参构造
        //Object类的无参构造最后被调用,最先被执行(栈的特点:后入先出)
        System.out.print("1 ");
    }
}
class Y extends X{
    public Y() {
        System.out.print("2 ");
    }
    public Y(String name){
        super();
        System.out.print("3 ");
    }
}
class Z extends Y{
    public Z(){
        this("张三");
        System.out.print("4 ");
    }
    public Z(String name){
        this(name,18);
        System.out.print("5 ");
    }
    public Z(String name,int age){
        super(name);
        System.out.print("6 ");
    }
}
/*
程序运行结果:
    1 3 6 5 4
 */
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/heliuerya/article/details/128004420

Java中super关键字及super()的使用-爱代码爱编程

Java中super关键字及super()的使用: 1、super的使用: (1)super是一个关键字。 (2)super和this很类似,我们对比着学习。 2、先复习一下this关键字的使用。 (1)this能出现在实例方法和构造方法中; (2)this的语法是“this.”和“this()”; (3)this不能出现在静态方法中; (4)t

java关键字super的作用_java中super关键字的作用-爱代码爱编程

1.super关键字可以在子类的构造方法中显示地调用父类的构造方法,super()必须为子类构造函数中的第一行。 2.super可以用来访问父类的成员方法或变量,当子类成员变量或方法与父类有相同的名字时也会覆盖父类的成员变量或方法,这个时候要想访问父类的成员变量或方法只能通过super关键字来访问,子类方法中的super.方法名()不需要位于第一行。

java中表示父类对象的关键字是什么,java中关键字 super表示的真正对象-爱代码爱编程

java中关键字 super表示的真正对象 java中的super,大家都知道是表示一个父类的引用。上次群里见到一个网友询问 super.getClass().getName()的输出问题,大部分都知道输出的是当前这个类的类名。而不是父类的名称。关于这个问题的解释很多,基本都是说getClass()是一个final方法,说这个方法都是调用超父类Obj

JAVA中的super关键字-爱代码爱编程

JAVA中的Super关键字 super可以看作是父类的,存在类与类的继承关系会存在。主要功能有如下: 用super.属性、super.方法的方式,来表明调用的是父类的属性、方法在重写了父类的方法时,如果子类需要调用父类被重写的方法,需要加super关键字,显示了调用了父类的方法可以在子类的构造器中使用super(形参列表),来调用父类的构造器但是必须

Java——super关键字-爱代码爱编程

1、super是关键字,全部小写。 2、super和this对比:         this:                 this能出现在实例方法和构造方法中。                 this的语法: “this.” 、 “this ()”                 this不能使用在静态方法中。             

Java中super关键字详解-爱代码爱编程

Java中super关键字详解 super有什么用?super什么时候不可以省略呢?super在内存图中是如何存在的呢?super使用时的注意事项 super有什么用? (1)当子类中构造方法第一行没有super时,会默认第一行有一个super(),它的作用是调用父类的无参构造。 例: class A{ public A(){ Sys

java中this和super的应用_cosmosforme的博客-爱代码爱编程

super的访问不限于直接父类,如果爷爷类和本类中有同名的成员,也可以使用super去访问爷爷类的成员; 如果多个基类(上级类)中都有同名的成员,使用super访问遵循就近原则。A->B->C this()的使用主要是针对class本体内的执行, 用来指向其他的构造器。例如,在无参构造器里写this('hello'), 这种情况下就指向了同一

用gdb调试有问题的程序:练习使用gcc编译器和gdb调试器_盛溪的猫猫的博客-爱代码爱编程

内容 1.用gdb调试有问题的程序:练习使用gcc编译器和gdb调试器; 2.练习使用make工程管理器。 实操流程: (1)编制greet.c文件。 此代码的原意为倒序输出main函数中定义的字符串,但结果显示没有输出。代码如下所示: //greet.c #include <stdio.h> #include <std

第5章 泛型服务的定义实现_zhoujian_911的博客-爱代码爱编程

    从本章开始进入“Blog.Core-master”示例程序内部,但是也逐渐发现该程序是1个示例性远远大于工程性的程序,其内部有着些不必要的定义,同时在定义的规范上也存在着大小的许多问题,例如:一致性的命名方式规范,大量的不必要切重复的代码,不知从那儿复用的设计定义精巧但实用性和可读性都极差的类等,所以“Blog.Core-master”程序只能作为

程序员:世界杯梅西首战,我在工位看球被领导抓到了...... 丨黑马头条_传智播客的博客-爱代码爱编程

大家好,我是播妞 最近我的朋友圈被“世界杯”刷屏了 上次看见那么多男生发圈 还是在EDG夺冠 ...... 相关段子也是层出不穷 听说,有的网友家电视已经这样了 ↓↓↓ △ 图源网络(如侵删) 言归正传 又到了每周的《黑马头条》时间 和播妞一起来看看吧  程序员在看什么? · 京东高管降薪,基层福利提升 近日,京东

metabase学习教程:视图-4_metabasecn的博客-爱代码爱编程

将数据可视化为直方图 学习何时使用直方图,以及元数据库如何使创建直方图更容易。 我们将逐步创建直方图,它是一种条形图,显示连续范围内的数据组。柱状图有助于深入了解人们可能购买的商品的数量、他们可能购买的价格范围,甚至是大多数人购买商品的时间。 直方图与条形图 直方图是条形图。虽然典型条形图上的条形图表示类别组,但柱状图上的条形图表示沿连续可量化频谱

2022大厂面试秘籍java岗:中间件+算法+http+线程+虚拟机+分布式_啊码的博客-爱代码爱编程

前言 很多朋友对面试不够了解,不知道如何准备,对面试环节的设置以及目的不够了解,因此成功率不高。通常情况下校招生面试的成功率低于1%,而社招的面试成功率也低于5%,所以对于候选人一定要知道设立面试的初衷以及每个环节的意义,

【csdn竞赛】第十期解题报告_icehomegre的博客-爱代码爱编程

文章目录 感想关于自己关于平台 第一题 (难度:入门)题目描述100分做法 第二题 (难度:简单)题目描述100分做法 第三题 (难度:中等/困难)题目描述100分做法1(对应中等)10