文章目录
- 一、super是什么?
- 二、this是什么?
- 三、相同点
- 四、不同点
一、super是什么?
super是java提供的一个关键字,其主要作用是在子类方法中访问父类的成员。
1.当子类对象被构造的时候,需要
先调用父类的构造方法,然后
再调用子类的构造方法。
先调用父类的构造方法,然后
再调用子类的构造方法。
3.子类包含与父类相同的方法,
使用super关键字指定父类的方法。 换句话说,如果方法被重写了就可以使用 super 关键字来指定父类方法。
使用super关键字指定父类的方法。 换句话说,如果方法被重写了就可以使用 super 关键字来指定父类方法。
以下几点需要注意:
1. 如果父类是
无参或者默认的构造方法,那么在子类的构造方法第一行默认是有隐含的super()调用的,这个时候只是我们自己看不到而已。
无参或者默认的构造方法,那么在子类的构造方法第一行默认是有隐含的super()调用的,这个时候只是我们自己看不到而已。
2. 在子类构造方法中,super()调用父类构造方法时,必须是子类构造函数中
第一条语句。
第一条语句。
3. super()只能在子类构造方法中出现一次,并且不能和this同时出现。
二、this是什么?
1.代表当前的对象。
2.this就是所在函数所属对象的引用,哪个对象调用了this所在的函数,this就代表哪个对象。
3.代表当前对象自己的属性。
4.代表当前对象对象自己的方法
三、相同点
1. 都是Java中的关键字
2. 只能在类的非静态方法中使用,用来访问非静态成员方法和字段
3.
在构造方法中调用时,必须是构造方法中的第一条语句,并且不能同时存在。
在构造方法中调用时,必须是构造方法中的第一条语句,并且不能同时存在。
四、不同点
1. this是当前对象的引用,当前对象即调用实例方法的对象,super相当于是子类对象中从父类继承下来部分成员的引用。
2. 在非静态成员方法中,this用来访问本类的方法和属性,super用来访问父类继承下来的方法和属性。
3. 在构造方法中:this()用于调用本类构造方法,super()用于调用父类构造方法,两种调用不能同时在构造方法中出现。
4. 构造方法中一定会存在super()的调用(调用默认或者无参的时候),没有写编译器也会增加,但是this()不写则没有。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94602.html