Java进阶篇-super关键字

Public class Empolyee{
String name = “张三”;
Public void work(){
system.out.println(“员工在工作”);
}

Public class Manager extends Employee{
String name =“李四”;
Public void work(){
System.out.println(“经理在工作”);

Public void m1(){
super.work()
system.out.println(this.name);
system.out.println(name);
system.out.println(super.name)


很显然父类和子类中都有name属性。这个时候调用就不能用this,而是用super
在这里插入图片描述

1. Super不是引用类型,super中存储的不是引存地址。super指向的不是父类对象和this是有区别的。

2.super代表的是当前子类对象中的父类型特征

3. 什么时候使用super?

  子类和父类都有某一个数据。例如。子类和父类都有name这个属性。如果要在子类中访问name属性,需要使用super

4.Super可以用在什么地方?

可以用在成员方法中。
super可以用在构造方法
this和super相同都不能用在静态方法中

5.super关键字用在构造方法中

    语法:super(实参)
    作用:通过子类的构造方法去调用父类的构造方法。
    语法规则:一个构造方法第一行如果没有this(),也没有显示的去调用super(),系统会默认调用super()
    注意:super();调用只能放在构造方法第一行

super()和this()不能共存

6.通过子类的构造方法去调用父类的构造方法,作用是当前子类对象中的父类型特征赋值,super()调用了父类的构造方法,但是并不会创建父类对象,在Java语言中只要创建Java对象,那么object中的无参数构造方法一定执行

7.单例模式的缺点是无法继承(单例模式的类型没有子类’语法继承)。

发布了168 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/MyxZxd/article/details/104646417