super 和this的区别
时间: 2024-05-24 10:15:05 浏览: 14
在Java中,super和this都是关键字,它们有不同的作用:
1. super关键字
super关键字用于访问父类的属性和方法,它可以调用父类的构造方法、成员变量和成员方法,可以通过super()来调用父类的构造方法,可以通过super.成员变量或super.成员方法来访问父类的成员变量或方法。
2. this关键字
this关键字代表当前对象,它可以在类的方法中使用,用于引用当前对象的成员变量和成员方法,可以通过this()来调用当前对象的构造方法,可以通过this.成员变量或this.成员方法来访问当前对象的成员变量或方法。
总的来说,super关键字用于访问父类的成员,this关键字用于访问当前对象的成员。
相关问题
super和this的区别
在Java中,super和this都是关键字,用于访问父类和当前类的成员变量、方法和构造函数。它们的主要区别如下:
1. 作用对象不同
- super:作用于父类,用于访问父类的成员变量和方法。
- this:作用于当前对象,用于访问当前对象的成员变量和方法。
2. 调用构造函数的方式不同
- super:调用父类的构造函数,以便在子类中初始化父类的成员变量。
- this:调用当前类的其他构造函数,以便在构造函数中复用代码。
3. 变量名相同时的优先级不同
- super:当子类中有与父类同名的成员变量或方法时,使用super可以访问父类的成员变量或方法。
- this:当成员变量与方法名相同时,使用this来区分成员变量和方法。
总的来说,super和this都是用于访问对象的成员变量和方法,但是它们的作用对象和调用方式不同。需要根据具体情况来选择使用哪个关键字。
super和this有什么区别
在Java中,super和this关键字都用于访问对象的属性和方法,但它们有不同的用途。
1. super关键字
super关键字用于在子类中访问父类的属性和方法。在子类中,如果父类和子类有同名的属性或方法,则使用super关键字可以区分它们。
例如:
```
class Parent {
int x = 10;
void print() {
System.out.println("Parent");
}
}
class Child extends Parent {
int x = 20;
void print() {
super.print(); // 调用父类的print方法
System.out.println("Child");
System.out.println(super.x); // 访问父类的x属性
System.out.println(this.x); // 访问子类的x属性
}
}
```
2. this关键字
this关键字用于在当前对象中访问属性或方法。它通常用于区分局部变量和实例变量,或者用于在构造函数中调用其他构造函数。
例如:
```
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name; // 使用this关键字区分局部变量和实例变量
this.age = age;
}
Person(String name) {
this(name, 0); // 调用另一个构造函数
}
}
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)