作者主页:Designer 小郑 作者简介:3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN学院、蓝桥云课认证讲师。 主打方向:Vue、SpringBoot、微信小程序
本文讲解了 Java 中 this 和 super 关键字语法和应用场景,并给出了样例代码。
在 Java 中,this 关键字是一个引用,它代表当前对象的引用,它可以在类的成员方法和构造方法中使用。
this 关键字主要有以下
个作用,请同学们认真学习。
this
关键字来引用当前对象。比如在类的方法中需要访问当前对象的成员变量或调用其他方法时,可以使用 this
关键字来明确指代当前对象。this
关键字可以区分成员变量和参数变量。例如,如果一个方法的参数名与成员变量名相同,使用 this
关键字可以明确指明成员变量。提示:this 关键字只能在非静态的成员方法和构造方法中使用,不能在静态方法中使用,因为静态方法属于类级别,没有当前对象的引用。
在 Java 中,super 关键字是一个引用,它用于引用父类的成员变量、方法和构造方法。
super 关键字主要有以下
种用法,请同学们认真学习。
super
关键字来调用父类的构造方法。这样可以在子类构造对象时,先执行父类的构造方法,确保父类的初始化工作完成。super
关键字来引用父类的成员。通过 super
关键字,可以明确指定调用父类的成员,避免歧义。super
关键字来调用父类的普通方法。这样可以在子类中重写父类的方法,但又需要在子类的方法中调用父类的原始实现。super
关键字来引用外部类的成员。通过 super
关键字,可以明确指定调用外部类的成员。提示:super 关键字只能用于在子类中引用父类的成员,不能用于在父类中引用子类的成员。另外,super 关键字不能用于静态方法和静态代码块中,因为静态方法和静态代码块属于类级别,没有具体的对象实例。
this
关键字是用来引用当前对象的引用,而 super
关键字是用来引用父类对象的引用。
它们的使用区别如下,请同学们认真学习。
以下是一个示例代码,请同学们复制到本地执行。
class Parent {
private int age;
public Parent(int age) {
this.age = age;
}
}
class Child extends Parent {
private String name;
public Child(int age, String name) {
super(age); // 调用父类的构造方法
this.name = name;
}
}
以下是一个示例代码,请同学们复制到本地执行。
class Parent {
protected int age;
public void printAge() {
System.out.println("Parent's age: " + age);
}
}
class Child extends Parent {
private int age;
public Child(int age) {
this.age = age; // 引用子类的age变量
super.age = age; // 引用父类的age变量
}
public void printAge() {
System.out.println("Child's age: " + age); // 引用子类的age变量
super.printAge(); // 调用父类的printAge方法
}
}
在上述示例代码中,子类 Child
中有一个与父类 Parent
同名的成员变量 age
。通过 this 关键字和 super 关键字可以分别引用子类和父类的成员变量。
一、this 关键字的作用是什么?举例说明。
答:this 关键字用于引用当前对象的引用,它主要有以下几个作用:
this.name
表示当前对象的 name
成员变量。二、super 关键字的作用是什么?举例说明。
答:super 关键字用于引用父类对象的引用,它主要有以下几个作用:
super.name
表示父类的 name
成员变量。三、this和super关键字的区别是什么?
答:this 关键字用于引用当前对象的引用,super 关键字用于引用父类对象的引用,具体区别如下。
四、当子类和父类有同名的成员变量时,如何使用 this 和 super 关键字区分?
答:当子类和父类有同名的成员变量时,可以使用 this
和 super
关键字来区分。
this.name
表示子类的name成员变量。super.name
表示父类的name成员变量。五、this 和 super 关键字能否同时出现在一个构造方法中?
答:是的,this 和 super 关键字可以同时出现在一个构造方法中。例如,通过 this 关键字调用本类的其他构造方法,再通过 super 关键字调用父类的构造方法,实现构造方法之间的调用关系。例如:this(...)
和 super(...)
。
本文讲解了 Java 中 this 和 super 关键字语法和应用场景,并给出了样例代码,在下一篇博客中,将讲解 Java 中构造函数语法和构造函数的优先级问题。