继承,子类,在 Java 中使用 super.print() 打印

梅特博兰

我有4个不同的班级。一题Student,一Instructor,一PersonMain下面是我的代码:

学生:

public class Student extends Person {
public void print() {
    super.print();
    System.out.println(", credits: " + credits);
}
}

讲师:

public class Instructor extends Person{
private double salary;
public double getSalary() {
    return salary;
}

public void setSalary(double newSalary) {
    salary = newSalary;
}

public void print() {
    super.print();
    System.out.println(", salary: " + salary);
}
}

人:

public class Person {

private String name;
private String id;

public String getName() {
return name;
}

public void setName(String replacementName) {
name = replacementName;
}

public String getID() {
return id;
}

public void setID(String id) {
this.id = id;
}

public void print() {
    System.out.print(name + ", student ID: " + id);
    }

}

主要的:

public class Main {

public static void main(String[] args) {
    Instructor instructor = new Instructor();
    instructor.setName("Hani Javadi");
    instructor.setID("888777666");
    instructor.setSalary(11111);
    instructor.print();

    System.out.println("--- --- ---");

    Student student1 = new Student();
    student1.setName("Joe Loop");
    student1.setID("810123456");
    student1.addCredits(10);
    student1.print();

    Student student2 = new Student();
    student2.setName("Mary Collection");
    student2.setID("811987321");
    student2.addCredits(25);
    student2.print();

    Student student3 = new Student();
    student3.setName("Ke Method");
    student3.setID("810010101");
    student3.print();
}

}

当我去输出这段代码时,结果是这样的:


Hani Javadi, student ID: 888777666, salary: 11111.0 

Joe Loop, student ID: 810123456, credits: 10

Mary Collection, student ID: 811987321, credits: 25 

Ke Method, student ID: 810010101, credits: 0

但是,输出需要有第一行:


Hani Javadi, instructor ID: 888777666, salary: 11111.0 

任何人都可以帮助解决这个微不足道的错误吗?我已经努力了几个小时,试图通过if在超类中添加一条语句来找到解决它的方法,Person但似乎没有任何效果。有没有一种简单的方法可以让教师打印声明来显示教师 ID 而不是学生 ID?

天道

哟,发生这种情况是因为您在 Person 类中获得了“学生 ID”,它适用于抽象级别

例如,您可以尝试在 Person 类中使用 next 方法:

public void print() {
    System.out.print(name + ", " + getClass().getName() + "  ID: " + id);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Java中通过super继承子类变量

来自分类Dev

Java继承,使用super()

来自分类Dev

在Java中使用Super

来自分类Dev

使用Java继承在子类内部获取属性?

来自分类Dev

在Python的子类成员中使用super

来自分类Dev

在Python的子类成员中使用super

来自分类Dev

在Python中使用super()进行多重继承

来自分类Dev

Java 使用 println 方法打印继承的对象

来自分类Dev

子类在调用继承的方法(Java)时会使用父类还是子类方法

来自分类Dev

在codeigniter php中使用window.print()打印图像

来自分类Dev

使用继承另一个元类的元类时,子类的 super().__init__() 失败

来自分类Dev

java中使用继承的类

来自分类Dev

在Java中使用多维数组打印值

来自分类Dev

在Java中使用for循环打印星号

来自分类Dev

在Java中使用BufferedOutputStream打印Integer

来自分类Dev

在Java中使用for循环打印星号

来自分类Dev

在Java中使用BufferedOutputStream打印Integer

来自分类Dev

在java中使用静态int打印计数

来自分类Dev

在父类中使用打印函数,关于“继承的”变量的定义

来自分类Dev

在 Java8 Consumer 中使用 "? super T" 的目的然后

来自分类Dev

如何使用打印机的字体从java中使用行式打印机进行打印?

来自分类Dev

Java:如何使用无效的Print()函数打印到可滚动对话框?

来自分类Dev

Objective-C:在子类中使用继承和调用方法

来自分类Dev

Java:在Java的打印语句中使用的管道?

来自分类Dev

Java子类构造函数继承的成员

来自分类Dev

关于Java子类继承返回“ this”的方法

来自分类Dev

继承类或其子类的Java类

来自分类Dev

Java子类构造函数继承的成员

来自分类Dev

Java类继承和比较子类对象

Related 相关文章

热门标签

归档