Для домашней работы я работаю со следующими тремя классами.
Class | Extends | Variables
--------------------------------------------------------
Person | None | firstName, lastName, streetAddress, zipCode, phone
CollegeEmployee | Person | ssn, salary,deptName
Faculty | CollegeEmployee | tenure(boolean)
У меня проблемы с тем, чтобы конструктор факультета правильно использовал данные в суперклассах.
import java.util.*;
import javax.swing.*;
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,
department,ssn,salary);
String booleanFlag = JOptionPane.showInputDialog(null, "Tenured (Y/N)?");
if(booleanFlag.equals("Y"))
tenured = true;
else
tenured = false;
}
public void setTenure(boolean tenured)
{ this.tenured = tenured; }
public boolean getTenured()
{ return tenured; }
public void display()
{
super.display();
JOptionPane.showMessageDialog(null, "Tenured: " + tenured);
}
}
Класс CollegeEmployee
, из которого происходит Faculty
, отображается ниже.
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 setFirstName(String firstName)
{ this.firstName = firstName; }
public String getFirstName()
{ return firstName; }
... ETC ... REMAINING GET/SET METHODS ELIMINATED FOR BREVITY.
Ошибки, которые я получаю, указывают на несоответствие между параметрами ... Faculty
вызывает восемь параметров, но CollegeEmployee
имеет только пять. Тем не менее, я думаю, что, расширив CollegeEmployee
, который расширяет Person
, я получу доступ ко всем восьми полям к моменту вызова этого класса. Как было указано, это не так. У меня есть только пять полей из Person
. Итак, мой следующий очевидный вопрос: как я получу ssn, department and salary
от CollegeEmployee
до Faculty
? Это часть, которую я скучаю. Я изучал Java Tutorials и экспериментировал пару часов, но все еще не могу понять, что мне нужно сделать для исправления. Нужно ли вызывать переменные People
через CollegeEmployee
, а затем создавать переменные CollegeEmployee
в Faculty
? Я действительно запутался в том, что делать, и отчаянно нуждаюсь в руководстве ...
Спасибо большое, я вернусь через несколько после того, как прочитаю раздел ключевых слов super () в Учебниках.