java - 我如何在子类java中使用父类(super class)方法

标签 java inheritance

public void setName (String n){}
public void setAfm (String a){}

这些是我需要调用的父类(super class)方法。

SalariedEmployee (){
    name = super.setName(String n);
    afm = super.setAfm(String a);
    salary = payment();

这就是子类中的构造函数。我怎样才能正确调用这些方法。我不想在 SalariedEmployee 中使用任何参数,我想使用父类(super class)方法设置名称和 afm 。但我的方法都是无效的。所以我想我必须改变这一点,对吗?或者我还缺少其他东西吗? 提前致谢!

最佳答案

编辑:您还可以使用 setter 。仅当您想从父类(super class)中调用已在子类中重写的方法时,“super”关键字才是必需的。

您应该使用构造函数来设置初始值,但使用 setter 也是一个可能的解决方案:

class Employee {
    String name;
    String afm;

    public Employee() {
    }
    public Employee(String name, String afm) {
        super();
        this.name = name;
        this.afm = afm;
    }

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

    public void setAfm(String afm) {
        this.afm = afm;
    }

}

class SalariedEmployee extends Employee {
    //Using constructors 
    public SalariedEmployee(String name, String afm) {
        super(name, afm);
        salary = payment();
    }
    //using setters
    public SalariedEmployee() {
        setAfm("afm");
        setName("name");
        salary = payment();
    }
}

此外,像“setName”这样的 setter 方法应该为 void,因为您不希望它返回任何与“getName”这样的 getter 方法不同的内容。

关于java - 我如何在子类java中使用父类(super class)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36238079/

相关文章:

c# - 这是斯巴达,还是?

java - 形状的 CSS 不适用于 javafx 中的文本区域

java - 我的 while 循环无限运行,当我检查它时,它说 while 循环没有主体,而我认为它显然没有主体

java - 将图形绘制从 android 移植到标准 java

c# - 在 C# 中使用继承而不是名称别名是否正确?

c++ - 嵌套类继承错误

c++ - 如何从基类指针访问顶层类中的变量

java - 如何在 POST 请求中传递 headers 和请求正文?

java - JDBC 模板 : either Update or Insert if ID doesn't exist

javascript - 将原型(prototype)添加到现有对象