首页 > 其他分享 >10 super 讲解

10 super 讲解

时间:2023-02-09 00:11:31浏览次数:36  
标签:10 子类 System 构造 讲解 父类 super public

super 讲解

image

package com.zhan.base05Oop;

public class Test10 {

    // 区别 有无 this.
    // 区别 this.(指向当前类或者当前对象的属性和方法) 和 super. (指向父类的属性或者方法)

    /*
    super 注意点
      1. super()/super(参数); 调用父类的构造器,必须要在子类构造器的第一行
      2. super 关键字只能出现在子类里面而不能出现在父类里面
      3. 不能同时使用 super()/ super(参数)和this()/this(参数) 来调用构造器

    super  VS this
  1. 区别 this.(指向当前类或者当前对象的属性和方法) 和 super. (指向父类的属性或者方法)
  2. this :没有继承关系也能使用
     super : 必须要有继承关系,才能且只能在子类中使用
  3. this()/this(参数); 调用本类的构造器
     super()/super(参数); 调用父类的构造器

     */

    public static void main(String[] args) {

        Son1 son1 = new Son1();  // 有构造器的话,先执行父类的构造器
        son1.printName("zjh");
        son1.test();

    }
}





class Father1 {

    // 父类的构造器
    public Father1(){
        this(3);    // 调用自身的构造器
        System.out.println("这是父类的无参构造器");
    }
    public Father1(int a){  // 参数随便写的
        System.out.println("这是父类的有参构造器");
    }

    protected String name="詹建海";
    public void print(){
        System.out.println("这是父类的方法");
    }
}

class Son1 extends Father1{

    // 子类的构造器
    public Son1(){
        // 隐藏代码 super(); :默认调用了父类的无参构造器
        // super(); // 调用了父类的无参构造器,必须要在子类构造器的第一行    这里的super();可以不写,可以不说明也行
        super(3);  // 调用了父类的有参构造器,必须要说明才行 
                      // 父类是有参构造器的话,子类必须写明父类的有参构造器,不然的话会报错
        System.out.println("这是子类的构造器");
    }
    private String name="大帅哥";
    public void print(){
        System.out.println("这是子类的方法");
    }

    public void test(){  // 在方法中调用方法
        print();          // 当前类的方法
        this.print();     // 子类的(当前类的)方法
        super.print();    // 父类的方法
    }
    public void printName(String name){
        System.out.println(name);            // 形参
        System.out.println(this.name);       // this. 这个类的对象的name
        System.out.println(super.name);      // super.  父类的 name
    }
}

标签:10,子类,System,构造,讲解,父类,super,public
From: https://www.cnblogs.com/zhanjianhai/p/17103749.html

相关文章

  • 105. Construct Binary Tree from Preorder and Inorder Traversal[Medium]
    105.ConstructBinaryTreefromPreorderandInorderTraversalGiventwointegerarrayspreorderandinorderwherepreorderisthepreordertraversalofabina......
  • 《Terraform 101 从入门到实践》 前言
    《Terraform101从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。Terraform101从入门到实践......
  • ChatGpt,普通人如何做到年薪50万、100 万,要怎么才能实现
    国内使用ChatGpt的方式汇总,2023年2月8号,亲测可用最近,ChatGpt很火,身边的人都在讨论,会不会成为下一个风口,想前几年互联网一样,迎来井喷式的发展。小徐我也是在关注,这......
  • Linux 讲解DHCP服务工作原理汇总
    ​dhcp:动态主机配置协议。从bootp演变而来,引进了租约、续租功能,成为了现在的DHCP。      需要就分配,不需要就回收。 工作过程:1、当获得地址是,有租约期限,当你关机时,I......
  • 真正“搞”懂HTTP协议10之缓存控制
    HTTP缓存相关的问题好像是前端面试中比较常见的问题了,上来就会问什么cache-control字段有哪些,有啥区别啥的。嗯……说实话,我觉得至少在本篇来说,HTTP缓存还算不上复杂,只......
  • 08 封装讲解
    封装讲解//alt+insert(Fn)快捷键:自动生成get,set方法/*封装的意义1.提高程序的安全性,保护数据2.隐藏代码的实现细节3.统一接口4.增强系统的可维护性*......
  • linux物理机器挂载硬盘报错,can't read superblock
    场景:某宝买了个1T机械硬盘,做逻辑卷挂载时,报错误can'treadsuperblock,网上搜索过一大堆修复的问题,怎么搞都不行。自己买条黑线ATA3.0的换上即可......
  • 【AcWing】103. 电影(离散化)
    problem莫斯科正在举办一个大型国际会议,有n个来自不同国家的科学家参会。每个科学家都只懂得一种语言。为了方便起见,我们把世界上的所有语言用1到109之间的整数编号。在会议......
  • 【PAT甲】1051 Pop Sequence (25分)判断出栈顺序的合法性
    problem1051PopSequence(25分)GivenastackwhichcankeepMnumbersatmost.PushNnumbersintheorderof1,2,3,…,Nandpoprandomly.Youaresupposed......
  • Vastbase G100高可用集群搭建
    VastbaseG100高可用集群搭建苏水的北關注IP屬地:贵州0.2112022.06.0110:42:53字數4,560閱讀1,0361.概述Vastbase集群支持搭建一主一备与一主多备,本文档目......