让我来为你讲解Java基础中的super关键字。
什么是super关键字
在Java中,super是一个关键字,用于表示父类对象的引用。使用super关键字可以方便地调用父类的构造方法、属性和方法,也可以用来解决子类与父类存在同名方法或属性的问题。
super关键字的语法
下面是使用super关键字的两种形式:
- 调用父类构造方法:
java
super(参数列表);
- 访问父类属性或方法:
java
super.属性名;
super.方法名(参数列表);
使用super调用父类构造方法
在子类的构造方法中调用父类的构造方法,可以使用super关键字来实现。下面是一个示例代码:
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
public class Dog extends Animal {
private int age;
public Dog(String name, int age) {
super(name);
this.age = age;
}
public int getAge() {
return this.age;
}
}
在这个例子中,Dog类继承了Animal类,使用了super关键字调用了Animal类的构造方法来初始化父类中的name属性。
使用super访问父类属性或方法
在子类中也可以使用super来访问父类中的属性和方法。如果子类中有与父类同名的属性或方法,在子类中使用super可以区别于子类自身的属性或方法。下面是一个示例代码:
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public void say() {
System.out.println("I am an animal");
}
}
public class Dog extends Animal {
private int age;
public Dog(String name, int age) {
super(name);
this.age = age;
}
public void say() {
super.say();
System.out.println("I am a dog");
}
public void printName() {
System.out.println(super.getName());
}
}
在这个例子中,Dog类重写了父类的say()方法,并调用了父类的say()方法来输出“I am an animal”这句话。此外,Dog类中还新增了一个printName()方法,使用super来访问父类中的name属性并输出。
总结
通过以上的示例代码,我们可以看到使用super关键字可以方便地调用父类的构造方法、属性和方法。在子类中也可以使用super来访问父类中的属性和方法,解决同名问题并实现更加灵活的编程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础之super关键字浅析 - Python技术站