dww*_*n66 2 java oop inheritance
对于家庭作业,我正在使用以下内容.这是一个指定的类结构,我知道这不是最好的设计.
Class | Extends | Variables
--------------------------------------------------------
Person | None | firstName, lastName, streetAddress, zipCode, phone
CollegeEmployee | Person | ssn, salary,deptName
Faculty | CollegeEmployee | tenure(boolean)
Student | person | GPA,major
Run Code Online (Sandbox Code Playgroud)
所以在教师班......
public class Faculty extends CollegeEmployee
{
protected String booleanFlag;
protected boolean tenured;
public Faculty(String firstName, String lastName, String streetAddress,
String zipCode, String phoneNumber,String ssn,
String department,double salary)
{
super(firstName,lastName,streetAddress,zipCode,phoneNumber,
ssn,department,salary);
String booleanFlag = JOptionPane.showInputDialog
(null, "Tenured (Y/N)?");
if(booleanFlag.equals("Y"))
tenured = true;
else
tenured = false;
}
}
Run Code Online (Sandbox Code Playgroud)
我的理解是super(),Faculty允许访问变量CollegeEmployee以及Person.使用上面的代码,当我只包含Person变量时,它编译得很好.一旦我尝试使用,ssn, department, or salary我得到以下编译错误.
Faculty.java:15: error: constructor CollegeEmployee in class CollegeEmployee can not be applied to the given types:
super(firstName,lastName,streetAddress,zipCode,phoneNumber,ssn,department,salary);
^
Required: String,String,String,String,String
Found: String,String,String,String,String,String,String,String
reason: actual and formal argument lists differ in length
Run Code Online (Sandbox Code Playgroud)
我对这个错误完全感到困惑......这是真实的还是正式的?Person有五个参数,CollegeEmployee有3个,所以我的猜测是参数传递方式有点时髦......但我不太确定从哪里开始修复它.我错过了什么?
这是我的CollegeEmployee课程
import java.util.*;
import javax.swing.*;
//
public class CollegeEmployee extends Person
{
protected String ssn;
protected String sal;
protected double annSalary;
protected String department;
//
public CollegeEmployee(String firstName, String lastName,
String streetAddress, String zipCode,
String phoneNumber)
{
super(firstName,lastName,streetAddress,zipCode,phoneNumber);
ssn = JOptionPane.showInputDialog(null, "Enter SSN ");
department = JOptionPane.showInputDialog
(null, "Enter department: ");
sal = JOptionPane.showInputDialog(null, "Enter salary: ");
annSalary = Double.parseDouble(sal);
}
//
public void setSSN(String ssn)
{ this.ssn = ssn; }
public void setAnnSalary(double annSalary)
{ this.annSalary = annSalary; }
public void setDepartment(String department)
{ this.department = department; }
//
public String getSSN()
{ return ssn; }
public double getAnnSalary()
{ return annSalary; }
public String getDepartment()
{ return department; }
//
public void display()
{
super.display();
JOptionPane.showMessageDialog
(null, "\nSSN: " + getSSN() + "\nAnnual Salary: "
+ getAnnSalary() + "\nDepartment: " + getDepartment(),
"Information", JOptionPane.QUESTION_MESSAGE);
}
}
Run Code Online (Sandbox Code Playgroud)
你;在构造函数的末尾意外发生了:
public Faculty(String firstName, String lastName, String streetAddress, String zipCode, String phoneNumber,String ssn,
String Department,double salary); // <--- this has to go
Run Code Online (Sandbox Code Playgroud)
正如您String Department在构造函数中的注释中所指出的,但是您传递department(不正确的大小写),将构造函数参数重命名为String department
| 归档时间: |
|
| 查看次数: |
398 次 |
| 最近记录: |