this和super的区别

一、this

1、this存储在堆内存当中对象的内部,每个对象都有自身的this。this是一个引用,this保存的是当前对象的内存地址,指向自身。

2、this只能出现在实例方法(包括get、set方法)和构造方法中,谁调用这个实例方法,this就是谁。所以this代表当前对象。

3、在定义实例方法中如果省略"this."语法,默认代表访问当前对象的属性或方法。"this."在区分局部变量和实例变量时不能省。

4、静态方法和静态代码块中不能使用this,因为它们的执行不需要对象,而this存在于对象中。

5、对于"this()"语法的使用只能在构造方法中的第一句,作用是在同一个类中通过构造方法调用其他构造方法,实现代码复用。

public Student(){ this("zby",22); }

public Student(String name,int age){ this.name=name; this.age=age; }

alt

二、super

1、super不是引用,super代表"当前对象(this)"里面的父类型特征,super属于this的一部分。

2、super只能出现在实例方法和构造方法中,不能使用在静态方法和静态代码块中。

3、"super()"只能出现在构造方法中第一行。每一个类的构造方法中如果没有"super(实参)",其第一行都默认调用父类的无参构造"super()",Object类除外。

目的是:创建子类对象时,先初始化父类型特征,而不是创建新对象,实际上对象只创建了1个。

4、使用语法:

super.属性名 【访问父类的属性】

super.方法名(实参) 【访问父类的方法】

super(实参) 【调用父类的构造方法】

alt

全部评论

相关推荐

专心打鱼:互联网搬运工,贴子都要偷
点赞 评论 收藏
分享
10-25 02:13
门头沟学院 C++
_凡_:8.27笔试10.22评估
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务