对于java的继承,super,this的用法(个人理解)

对于java的继承,super,this的用法?

首先需要掌握的是了解java中通过extends 继承一个父类。
在继承后,子类可以调用访问父类中所有的public,protected方法及成员变量。在调用时可以显式使用super表示父类。例如父类 A 中有:
方法 M();
成员变量 V;
在子类访问时可以写成super.M(),或者 super.V

据了解,java是有子类优先的规则,所以当父类与子类有同名方法或成员变量被调用,当没有显式使用super时,会优先调用子类的方法或成员变量。而如果调用的方法或成员变量在子类没有,那么会在父类中寻找,这时不用super也会在父类自动寻找调用。
因此,总而言之,在子类中调用父类中同名方法或有与父类中同名的成员变量(public protected)时,如果需要调用父类中的这一方法或成员变量,就必须显式写出super,否则可以省略。

第二种情况是调用父类构造方法,在子类构造方法java会默认隐式调用了super(),即父类的构造方法,其实仔细想想也可以直到,继承其实就是在原有类上扩写或者改写,所以肯定需要先构造原类作为基础模板。
这时假设父类中的构造方法必须含有参数,不存在无参的构造方法,这时在子类的构造方法中就必须显式写出super(String[] args),否则会出错。当然这也很符合逻辑,因为假设父类构造不成功,那谈什么子类能继承呢。

super的用法与this的用法恰好相对,this是针对自己本身进行调用,如访问自己成员变量,调用自己的成员方法(如果是继承,在子类找不到时也会去父类找),调用自己的构造方法。主要在需要区分的时候才使用,比较基础就不多赘述。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值