java - 给定以下类,完成 Student 类的代码,以便在我们运行 Q01 类时打印以下输出
问题描述
给定以下类,完成 Student 类的代码,以便在我们运行 Q01 类时打印以下输出。提示:学生类是 Person 的子类
这是输出:
部门:CSE,ID:20101001,姓名:Mark Wahlberg
部门:BBA,ID:20101002,姓名:Zeeko Zaki
部门:CSE,ID:20101002,姓名:Zeeko Zaki
public abstract class Person {
private String name;
private Person() {
}
Person(String name) {
this.name = name;
}
protected String getName() {
return name;
}
protected void setName(String name) {
this.name = name;
}
}
public class Q01 {
public static void main(String[] args) {
Student s1 = new Student("CSE", 20101001, "Mark Wahlberg");
Student s2 = new Student("BBA", 20101002, "Zeeko Zaki");
s1.printDetail();
s2.printDetail();
s2.setDepartment("CSE");
s2.printDetail();
}
}
我在班级下面创建了一个新班级
public class Student extends Person{
public String department="";
public int id;
public String name;
public String Public(String name){
return name;
}
public Student(String department,int id,String name){
this.department=department;
this.id=id;
this.name=name;
}
public void setDepartment(String department){
this.department=department;
}
public String getDepartment(){
return department;
}
public void printDetail(){
System.out.println("Department: "+this.department+", ID: "+this.id+", Name: "+name);
}
}
我无法编译此代码。如何解决这个问题呢?我的错误在哪里?
解决方案
Student 的构造函数需要先调用父类的构造函数。
为此,您需要调用“super”并传递正确的参数,在这种情况下,父类 (Person) 有 2 个构造函数,默认构造函数是私有的,只能在 Person 类中访问,因此您必须使用第二个构造函数子类 Student,它采用字符串名称。诶
public Student(String department,int id,String name){
super(name);
this.department=department;
this.id=id;
this.name=name;
}
推荐阅读
- c - 在 c 中仅将整数数据类型作为命令行参数传递
- scala - 使用 spark.sql 选择任何表的查询有时会给出零记录,但相同的选择查询会在 HIVE CLI 中给出结果
- python - Python键盘记录器以间隔打印出记录的字符
- javascript - Jasmin 框架中的 Javascript 单元测试
- php - 状态选择字段更改时 Woocommerce Ajax 购物车更新
- javascript - setState 在 currentState 对象上使用扩展运算符
- java - Java Stream IntSummaryStatistics 默认行为
- javascript - 多租户应用程序 - 如何在前端/后端之间传递数据?
- ios - 核心数据:后台更新 NSManagedObjectContext 在保存时不起作用
- python - 数字插值和绘图代码的问题