this和super关键字、this()和super()

  • this()和super()不能同时出现,只有一出现,就是在构造函数的第一行
  • 子类构造器中第一行默认是super(),一旦父类的构造器中没有无参的,那么必须显式调用父类的某个有参构造
  • this()和super()为构造方法,作用是在JVM堆中构建出一个对象。因此避免多次创建对象,同一个方法内只能调用一次this()或super()。同时为了避免操作对象时对象还未构建成功,需要this()和super()的调用在第一行实现,以此来创建对象,防止异常
  • super,this关键字与super(),this()不是一回事,前者表示当前调用者的父类与其本身,后者是为了构造器相互调用
  • super,this在内存之中是相同的含义,只不过是作用不同:super用于操作父类的成员变量和方法,this用于操作本类中的成员变量和方法,看如下代码
public class Test {
    public static void main(String[] args) {
        Fu z1 = new Zi1();
    }
}
//------结果------
//Fu类的无参构造方法
//Zi1@4554617c
//Zi1@4554617c
//Zi1类中的无参构造方法
public class Fu {
    public Fu(){
        System.out.println("Fu类的无参构造方法");
    }  
}
public class Zi1 extends Fu {
    public Zi1(){
        System.out.println(this.toString());
        System.out.println(super.toString());
        System.out.println("Zi1类中的无参构造方法");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值