文章目录

  • super关键字的三种用法:
    • 1. super.成员变量
    • 2. super.成员方法
    • 3. super():调用父类中的构造方法
      • 3.1.1 隐式调用父类无参数构造方法super()
      • 3.1.2 显式调用父类有参数构造方法super(id)

super关键字作用:在子类内部调用父类对象
基础语法
1.在类的继承中,当子类继承了父类, 在构造子类的时候,一定要先帮助父类进行构造
2. 调用super()必须写在子类构造方法的第一行,以保证在执行任何动作前,对象已经完成了初始化,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。

super关键字的三种用法:

1. super.成员变量


class Person{public String name; //成员变量public Person(String name) {this.name = name;}
}
class Student extends Person{String name = "student";public Student(String name) {super(name);}public void help() {//调用父类的成员属性System.out.println(name); //student 直接使用,优先使用局部变量System.out.println(super.name); // B 直接使用父类的成员变量}
}
public class s {public static void main(String[] args) {Student p = new Student("B");p.help();}
}

2. super.成员方法


class {public String name;public Person(String name) {this.name = name; //Test}public void help() {System.out.println(this.name+"Person");}
}
class Student extends Person{String name = "student";public Student(String name) {super(name); //Test}public void help() {//调用父类的成员方法super.help();System.out.println(this.name+"Student"); //Student this调用的式同类中的变量}
}
public class s {public static void main(String[] args) {Student p = new Student("Test");p.help();}
}
//Test Person
//student Student

3. super():调用父类中的构造方法

3.1.1 隐式调用父类无参数构造方法super()

如果父类是无参构造,那么子类的构造方法会默认隐式的在第一行先调用父类无参数构造方法,所以super()无需手动进行调用;

public class Father{int id;public Father(){System.out.println("父类构造方法");}
}
public class Son extends Father{public Son(){//super(); //系统会默认生成,可有可无System.out.println("子类构造方法");}
}
public class Test{public static void main(String[] args){Son s = new Son();}
}//print:
//父类构造方法
//子类构造方法

3.1.2 显式调用父类有参数构造方法super(id)

如果父类是含参构造,那么此时因为父类中没有无参数构造方法,所以子类继承父类时会报错,这时就需要我们手动的调用父类的有参构造方法super(id);

public class Father{int id;public Father(int id){System.out.println("父类构造方法");}
}
public class Son extends Father{public Son(int id){super(id); //手动调用父类的有参构造方法System.out.println("子类构造方法");}
}
public class Test{public static void main(String[] args){Son s = new Son(1);}
}//print:
//父类构造方法
//子类构造方法

super关键字用法相关推荐

  1. Java中this关键字和super关键字用法

    构造方法中的this关键字 构造方法是一个类的对象在通过new关键字创建时自动调用的,在程序中不能向调用其他方法一样通过方法名(也就是类名)来调用.但如果一个类有多个构造方法,可以在一个构造方法中通过 ...

  2. Java中类关键字super的用法详解

    今天给大家总结介绍一下Java类中super关键字的用法. 文章目录 super关键字用法: 1.修饰属性,明确表示直接从父类中寻找同名属性 2.在子类中调用父类的方法 3.在子类中调用父类的构造方法 ...

  3. java super()方法_Java super关键字的使用方法详解

    构造方法中的super关键字 在Java子类的构造方法中可以通过super关键字来调用父类的构造方法.其用法为: 1) super(); 访问父类中的无参构造函数 2) super (paras-); ...

  4. java编程里的values怎么使用,详解Java编程中super关键字的用法

    这篇文章主要介绍了Java编程中this与super关键字的用法,包括从内存结构方面分析super的作用域,需要的朋友可以参考下 通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程 ...

  5. 教妹学Java(三十三):super 关键字的用法

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第二十七篇,今天我们来谈谈 Java 的 super 关键字--super 关键字有哪些用法? ...

  6. java super关键字的作用_详解Java编程中super关键字的用法

    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自 ...

  7. Java中this、super关键字的用法

    一.this关键字代表当前对象的引用,用在当前类中,有三个方法: this()代表在当前类中调用其他的构造方法,并且只能在构造方法中写,只能调用一次,只能写在第一行. this.date代表访问当前类 ...

  8. This和Super关键字的对比

    this和Super关键字 this和Super关键字的对比 Super关键字的用法如下: 1. super关键字代表了父类空间的引用: 2. super关键字的作用: 3. super关键字调用父类 ...

  9. ES6的 super 关键字

    Class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多. 子类必须在constructor方法中调用super方法,否则新建实例时会报错. 这是因为子 ...

最新文章

  1. Dockerfile文件全面详解
  2. 浅谈电量传感器在数据中心不间断电源中的应用
  3. VS.NET 2005中实用的默认键
  4. 深度学习中反向传播得到的损失是一个标量
  5. 20220213-CTF MISC-a_good_idea(stegsolve工具的使用)-2017_Dating_in_Singapore
  6. UDK编辑器 49条小提示(转)
  7. UVA 357 - Let Me Count The Ways
  8. python大作业数独_python做一个数独小游戏
  9. python爬虫简单实例
  10. js打印插件_使用 Nodejs 开发一个 commitlint-release 插件
  11. .NET Core技术研究-通过Roslyn代码分析技术规范提升代码质量
  12. linux mbr gpt 区别,MBR、GPT的结构和区别
  13. 计算机的云是什么意思_阿里巴巴计算机云是什么意思
  14. 2018年最值得投资的十大行业版图
  15. android开发教程!看懂这些帮你轻松解决就业问题!知乎上转疯了!
  16. LIO-SAM论文翻译
  17. 计算机Web书籍推荐
  18. 蚂蚁金服副总裁蒋国飞:技术全面开放,与合作伙伴共发展
  19. 房子装修真的好累~~
  20. 透视变换(perspective transformation)

热门文章

  1. Node.js的用户交互(使用readline模块)
  2. HTML(网页设计)基础到加强
  3. 回音消除 Speex AEC 录音放音同步对齐
  4. 最新骗术,骗子的手段越来越高了(转贴)
  5. Qt - QRegExp 正则表达式
  6. 职业篇-忠告1-把工作当做实现人生价值的阶梯
  7. 计算机组成原理中J1J3是什么,计算机组成原理第一次实验报告
  8. android 大屏幕 清晰度,为什么安卓系统手机都长一个样?无非是大屏幕 ips显示屏 大分辨率 大内存 一样的大平板形状,三个chu传统...
  9. 沪江前端由H5页面引起的一场前端数据结构讨论 1
  10. 工厂系列系统之 MES 系统 3 核心模块BOM管理