super关键字

super

super关键字的用法和this关键字的使用方法相似
1.this:代表本类对象的引用
2.super:代表父类存储空间的标识(可以理解为父类对象引用)

package cn.tedu;

public class Fu {
    public int age=40;
}

package cn.tedu;

public class Zi extends Fu{
    
    public int age=20;
    public void show(){
        int age=30;
        //age=30
        System.out.println(age);
        //访问本类的成员变量age=20
        System.out.println(this.age);
        //访问父类的成员变量age=40
        System.out.println(super.age);

    }
}

package cn.tedu;

public class Demo {
    public static void main(String[] args) {
        //创建对象,调用方法

        Zi z=new Zi();
        z.show();
    }
}

在这里插入图片描述

this关键字指向调用该方法的对象,一般我们是在当前类中使用this关键字,所以我们常说this代表苯类对象的引用
在这里插入图片描述

1.继承中构造方法的访问特点
子类中所有的构造方法默认都会访问父类中无参的构造方法

为什么呢?
●因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化
●每一个子类构造方法的第一条语句默认都是: super()

如果父类中没有无参构造方法,只有带参构造方法,该怎么办呢?

●通过使用super关键字 去显示的调用父类的带参构造方法
●在父类中自己提供一个无参构造方法
推荐:自己给出无参构造方法

package cn.tedu;

public class Fu {
    public Fu(){
        System.out.println("Fu中无参构造方法被调用");
    }
    public Fu(int age){
        System.out.println("Fu中带参构造方法被调用");
    }
}

package cn.tedu;

public class Zi extends Fu{

    public Zi(){
        super();
        System.out.println("Zi中无参构造方法被调用");
    }
    public Zi(int age){
        super();
        System.out.println("Zi中带参构造方法被调用");
    }
}

package cn.tedu;

public class Demo {
    public static void main(String[] args) {
        //创建对象,调用方法

        Zi z=new Zi();
        Zi z2=new Zi(20);

    }
}

在这里插入图片描述

2.继承中构造方法的访问特点

通过子类对象访问一一个方法
●子类成员范围找
●父类成员范围找
●如果都没有就报错(不考虑父亲的父亲…)

package cn.tedu;

public class Fu {
    public void show(){
        System.out.println("Fu中show()方法被调用");
    }
}

package cn.tedu;

public class Zi extends Fu{

    public void method(){
        System.out.println("Zi中method()方法被调用");
    }
    public void show(){
        super.show();
        System.out.println("Zi中show()方法被调用");
    }
}

package cn.tedu;

public class Demo {
    public static void main(String[] args) {
        //创建对象,调用方法

        Zi z=new Zi();
        z.method();
        z.show();
    }
}

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不掉发的小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值