您的位置:首页 > 新闻 > 会展 > 石家庄网站外包_公司做网页_seo与sem的区别和联系_免费发布产品的网站

石家庄网站外包_公司做网页_seo与sem的区别和联系_免费发布产品的网站

2024/12/22 23:32:54 来源:https://blog.csdn.net/qq_62552630/article/details/143312060  浏览:    关键词:石家庄网站外包_公司做网页_seo与sem的区别和联系_免费发布产品的网站
石家庄网站外包_公司做网页_seo与sem的区别和联系_免费发布产品的网站

相同点:

1.都是Java中的关键字
2.都只可以在非静态方法中使用
3.在构造方法中使用必须是第一条语句并且二者不可以同时存在

不同点:

1.this是当前对象的引用,super是子类对象从父类继承下来部分成员的引用
2.在非静态成员方法中,this用来访问本类的方法和属性,super用来访问从父类继承下来的方法和属性
3.在构造方法中:this(...)用于调用本类构造方法,super(...)用于调用父类构造方法,两种调用不能同时在构造方法中出现

this

访问当前类的成员变量:

在方法或构造器中,当局部变量的名字与实例变量同名时,用 this 来区分。
public class Person {private String name;public Person(String name) {this.name = name;  // 使用 this 来区分参数 name 和实例变量 name}
}

调用当前类的构造器:

使用 this(...) 调用当前类的其他构造器(这个调用必须是构造器中的第一条语句)
public class Person {private String name;private int age;public Person(String name) {this(name, 0);  // 调用另一个构造器}public Person(String name, int age) {this.name = name;this.age = age;}
}

在非静态方法中引用当前对象:

将当前对象作为参数传递给其他方法

super

调用父类的构造器:

在子类的构造器中,可以使用 super(...) 调用父类的构造器,且必须是构造器中的第一条语句。
若未显式调用,Java 会自动调用父类的无参构造器。
public class Employee extends Person {private double salary;public Employee(String name, int age, double salary) {super(name, age);  // 调用父类的构造器this.salary = salary;}
}

访问父类的成员变量和方法:

当子类有和父类同名的成员变量或方法时,可以用 super 来区分父类和子类的成员
public class Employee extends Person {private String name; // 与父类的 name 冲突public void printName() {System.out.println(super.name);  // 输出父类的 nameSystem.out.println(this.name);   // 输出子类的 name}@Overridepublic void work() {super.work();  // 调用父类的 work 方法System.out.println("Employee is working.");}
}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com