《JAVA从入门到精通视频》笔记十二:super

1.super与this的对比
(1)this
       this能出现在实例方法和构造方法中,this不能使用在静态方法中。this的语法是:"this.“或"this()”。"this."大部分情况下是可以省略的,在区分局部变量和实例变量的时候不能省略。"this()"只能出现在构造方法第一行,通过当前的构造方法去调用“本类”中其他构造方法,目的是:代码复用。

(2)super
       super能出现在实例方法和构造方法中,super不能使用在静态方法中。super的语法是:"super.“或"super()”。"super()"只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中的构造方法,目的是:代码复用(创建子类对象的时候,先初始化父类型特征)。
       "super."大部分情况下是可以省略的,什么情况下不能省略呢?

       当一个子类构造方法的第一行既没有this()又没有super()的话,默认会有一个super(),调用该子类构造方法时,会通过super()先调用父类构造方法。这实际上模拟的是“先有父亲,才有儿子”。注意: 当父类构造方法有参时,需要相应地手动实现一个带参数的super方法。

       注意: 对this()/super()的调用必须是构造器中的第一个语句,否则报错。因此,this()和super()不能共存于同一个构造方法中。

       注意: 在构造方法执行过程中一连串调用了父类的构造方法,父类的构造方法又继续向上调用其父类的构造方法,但是实际上对象只创建了一个。
       "super(实参)"到底是干啥的?"super(实参)"的作用是初始化当前对象的父类型特征,并不是创建新的对象,实际上对象只创建了一个。

       注意: "super."什么时候不能省略?父类与子类属性同名时,如果想在子类中访问父类的属性,此时"super."不能省略。

       注意: super不是引用,super不保存内存地址,也不指向任何对象。super只是代表当前对象内部的那一块父类型的特征。

       注意: this和super都不能使用在static静态方法中。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值