java中super关键字的作用是什么
更新时间:2023-06-28介绍
在Java编程中,super关键字用于引用父类的成员变量、成员方法以及构造方法。它提供了一种简便的方式来访问父类的属性和行为。通过使用super关键字,我们可以在子类中重写父类的方法,并且在子类方法中调用父类的方法,以实现继承的特性。
使用super关键字调用父类的方法
在子类中,我们可以使用super关键字来调用父类的实例方法。假设我们有一个父类Person和一个子类Student:
class Person { void introduce() { System.out.println("我是一个人。"); } } class Student extends Person { void introduce() { super.introduce(); // 调用父类的introduce方法 System.out.println("我是一个学生。"); } } public class Main { public static void main(String[] args) { Student student = new Student(); student.introduce(); } }
上述代码中,Student类继承自Person类,并重写了introduce方法。在子类的introduce方法中,我们使用super.introduce()调用了父类的introduce方法。这样,在子类中既可以执行子类特有的行为,又能保留父类的行为。
使用super关键字调用父类的构造方法
在子类的构造方法中,我们可以使用super关键字来调用父类的构造方法。这样,我们可以在子类的构造方法中先执行父类的初始化工作,再执行子类的初始化工作。下面是一个例子:
class Person { private String name; Person(String name) { this.name = name; } } class Student extends Person { private int grade; Student(String name, int grade) { super(name); // 调用父类的构造方法 this.grade = grade; } } public class Main { public static void main(String[] args) { Student student = new Student("张三", 10); } }
上述代码中,Person类有一个带有name参数的构造方法,Student类继承了Person类,并拥有一个带有name和grade参数的构造方法。在Student类的构造方法中,我们使用super(name)调用了父类的构造方法,以初始化父类的属性。这样,我们可以保证父类的属性在子类创建对象时得到正确的初始化。
总结
通过使用super关键字,我们可以在子类中方便地访问父类的属性和方法,实现代码的重用和继承的特性。在子类的方法中调用父类的方法时,使用super关键字可以区分父类与子类的同名方法,并避免死循环。