Java中的super关键字
在Java中,使用super
关键字可以访问父类中的属性和方法。在这篇攻略中,我们将详细讲解super
关键字的用法和示例。
访问父类属性
使用super
关键字可以在子类中访问父类的属性。例如,我们有如下的Animal
类和Cat
类:
public class Animal {
protected String name; // 父类的属性
public Animal(String name) {
this.name = name;
}
}
public class Cat extends Animal{
public Cat(String name) {
super(name);
}
public void printName() {
System.out.println("Animal's name is " + super.name); // 使用super关键字访问父类属性
}
}
在Cat
类的printName()
方法中,使用super.name
访问了父类Animal
的name
属性。
调用父类构造方法
当子类继承了父类后,子类的构造方法会默认调用父类的无参构造方法。但有时候我们需要在子类中调用父类的有参构造方法,这时就可以使用super
关键字。
例如,我们修改Cat
类如下:
public class Cat extends Animal{
public Cat(String name) {
// 调用父类有参构造方法
super(name);
}
public void printName() {
System.out.println("Animal's name is " + super.name);
}
}
在子类Cat
的构造方法中,使用super(name)
调用了父类Animal
的有参构造方法,以便能够在创建Cat
对象时给父类的name
属性赋值。
示例说明
下面两个示例,分别演示了使用super
关键字来访问父类属性和调用父类构造方法。
访问父类属性示例
public class Main {
public static void main(String[] args) {
Cat cat = new Cat("Tom");
cat.printName(); // Animal's name is Tom
}
}
在这个示例中,创建了一个Cat
对象并传递了"Tom"
作为参数,然后调用了printName()
方法,输出了Animal's name is Tom
,说明成功访问了父类Animal
的name
属性。
调用父类构造方法示例
public class Main {
public static void main(String[] args) {
Animal animal = new Animal("Jack");
Cat cat = new Cat("Tom");
System.out.println("Animal's name is " + animal.name); // Animal's name is Jack
System.out.println("Cat's name is " + cat.name); // Cat's name is Tom
}
}
在这个示例中,创建了一个Animal
对象和一个Cat
对象,并输出了它们的name
属性。在创建Cat
对象时,使用了super(name)
调用了父类Animal
的有参构造方法,以便能够给父类的name
属性赋值。输出的结果分别为Animal's name is Jack
和Cat's name is Tom
,说明成功调用了父类构造方法并将name
属性进行了初始化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中的super关键字_动力节点Java学院整理 - Python技术站