2020.7.24-super关键字

一、super

01.1定义:

  1. 代表父类的空间的一个表示,你可以认为是父类的一个对象,可以使用super去访问父类的数据。
  2. super()访问父类的空参构造。
  3. super.成员变量名,访问父类的成员变量
  4. super.成员方法,访问父类的成员方法

01.2我们在创建子类对象时,为什么会先去调用父类构造。

  • 因为子类要继承父类的数据,甚至要使用父类的数据所以在初始化子类的时候,先要调用父类的构造方法,来完成父类的数据初始化,才能够继承父类的数据和使用父类的方法。

  • 在每个类的构造方法中的第一行,有一行某人语句是super()会去调用父类的空参构造,来完成数据的初始化。

  • Java继承体系中的顶层父类是object类,所有类都是直接或间接继承自他。

如果说父类没有空参构造。

想办法调用父类有参构造

01.3:this和super的区别

	this    代表的是本类对象的引用
	super  代表的是父类存储空间的标识(可以理解成父类的引用,可以操作父类的成员)
this和super的使用
	调用成员变量
		this.成员变量  调用本类的成员变量
		super.成员变量 	调用父类的成员变量
	调用构造方法
		this(...)			调用本类的构造方法
		super(...)			调用父类的构造方法
	调用成员方法
		this.成员方法 		调用本类的成员方法
		super.成员方法 	调用父类的成员方法

注意:this和super不同时存在在构造方法里面

案例演示1:

package com.Homework.day08;

public class Demo9 {
    public static void main(String[] args) {
        B b=new B(100);

        System.out.println(b.x);
    }
}
class A{
    int x=0;
    A(int w){
        x=w;
    }
}
class B extends A{
    int x=0;
    B(int w){
        super(w);
        x=w+1;
    }
}//101

01.4继承中构造方法的注意事项

案例演示
	父类没有无参构造方法,子类怎么办?
	a: 在父类中添加一个无参的构造方法
	b:子类通过super去显示调用父类其他的带参的构造方法
	c:子类通过this去调用本类的其他构造方法
		本类其他构造也必须首先访问了父类构造
注意事项
	super(…)或者this(….)必须出现在第一条语句上

案例演示:

package com.Homework.day08.qingzi;

public class Fu {
    static {
        System.out.println("静态代码块Fu"); //1
    }

    {
        System.out.println("构造代码块Fu");
    }

    public Fu() {
        System.out.println("构造方法Fu");
    }
}
---------------------
package com.Homework.day08.qingzi;

public class Zi extends Fu{
    static {
        System.out.println("静态代码块Zi");//2
    }

    {
        System.out.println("构造代码块Zi");
    }

    public Zi() {
        super();
        System.out.println("构造方法Zi");
    }
}
----------------------
package com.Homework.day08.qingzi;

public class Demo2 {
    public static void main(String[] args){
        Zi z = new Zi(); //请执行结果。
    }
}
静态代码块Fu
静态代码块Zi
构造代码块Fu
构造方法Fu
构造代码块Zi
构造方法Zi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

有点。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值