this和super的区别

本文解释了JavaScript中this关键字的用法,包括指向当前类实例,以及如何在构造函数和方法中调用属性和方法。同时介绍了super关键字,用于访问父类的属性和方法,以及在子类构造函数中的使用规则。
摘要由CSDN通过智能技术生成

目录

this

this的作用

this.属性名

 this.方法名()

this([实参])

super

super的作用

super.属性

super.方法名()

super([参数])


this

this是对本类使用的,它使用的对象取决于谁在执行。

this的作用

this.属性名

调用属性,区分局部变量与属性名重名,this.属性名

public Student(String name,char sex){
    this.name = name;
    this.sex = sex;
}

 注意:Student是我自己创建的一个类,类里面有name和sex两个属性,这个,相当于把局部变量的值赋值给了全局变量。

提示:如果局部变量名与属性名不一样,属性可以使用this.属性名,也可以省略,如下:

public Student(String username,char usersex){
    name = username;
    sex = usersex;
}

 this.方法名()

在本类的其他方法中,调用本类方法,一般可以省略this,如下:

this([实参])

调用本类构造方法

注意:必须构造方法第一行!!!

在方法中,可能有相同属性,这时候就可以用this([实参]),减少代码量,如下:

super

super关键字用于调用父类。

super的作用

super.属性

调用父类的属性(如果父类的属性是private修饰, super.属性无法访问)

super.方法名()

调用父类的方法

这里的Dog方法,有一个Pet父类,父类中有个方法setName(name为private时,用get和set调用)

public Dog(){   
    super.setName("哈哈哈哈哈哈");
}

在方法重写中:

如果子类没有重写父类这个方法, super. this. 是一样

如果子类重写父类这个方法, super.这个方法() 调用父类, this.这个方法() 调用子类方法 是不一样的

super([参数])

调用父类构造方法, 只是调用父类构造方法,没有创建父类对象,

  1. super() 只能在子构造方法的第一行

  2. 如果我们没有在子类构造方法手动编写super()代码或者this(), jvm虚拟机在子类构造方法隐式添加super();如果手动写, 不会给你添加super();

  3. 在子类构造方法,不能同时编写this(),super(),只能二选一

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值