gpt4 book ai didi

java - 为什么在 Java 中使用 super()

转载 作者:行者123 更新时间:2023-12-02 10:57:47 25 4
gpt4 key购买 nike

我是 Java 新手。有人可以解释一下这段代码吗?

abstract class Person {

private String name;
private String gender;

public Person(String nm, String gen){
this.name=nm;
this.gender=gen;
}

//abstract method
public abstract void work();

@Override
public String toString(){
return "Name="+this.name+"::Gender="+this.gender;
}

public void changeName(String newName) {
this.name = newName;
}
}

class Employee extends Person {

private int empId;

public Employee(String nm, String gen, int id) {
super(nm, gen);
this.empId=id;
}

@Override
public void work() {
if(empId == 0){
System.out.println("Not working");
}else{
System.out.println("Working as employee!!");
}
}

public static void main(String args[]){
//coding in terms of abstract classes
Person student = new Employee("Dove","Female",0);
Person employee = new Employee("Pankaj","Male",123);
student.work();
employee.work();
//using method implemented in abstract class - inheritance
employee.changeName("Pankaj Kumar");
System.out.println(employee.toString());
}

}

这里为什么要用super()我知道super()是用来调用基类的构造函数的!但我并没有完全意识到这一点!如何使用 super() 将姓名和性别值分配给构造函数 'Person()'。有人能为我解释一下吗?

最佳答案

Super () 用于调用父类构造函数...因为该类可以包含任意数量的构造函数,并且这些构造函数根据传递给 super() 方法的参数进行分类...是的,它将所有类型的变量带到当前类构造函数中以供使用。希望你明白了。

关于java - 为什么在 Java 中使用 super(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51585883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com