부모 클래스에서 멤버 변수를 생성자로 셋팅을 했다면
상속받는 자식 클래스 에서도 부모클래스( super을 호출 해 줘야 한다. )
이클립스에서 자동 지원도 해준다 클릭클릭
-> 우클릭 -> source -> generate construct using feild ( 알트시프트s )
class Employee{
Employee(String kubun, String name, String address, String dept) {
super();
this.kubun = kubun;
this.name = name;
this.address = address;
this.dept = dept;
}
String kubun; // 직원구분
// 생성자 제너레이트로 생성 -> source -> 제네레이트 컨스트럭트 유징 필드(알트+시프트+s)
String name; // 이름
String address; // 주소
String dept; // 부서
int getPay(){
return 0;
}
@Override
public String toString() { // toString도 기본 제공 -> alt+shift+s -> tostring 끝.
return "Employee [kubun=" + kubun + ", name=" + name + ", address="
+ address + ", dept=" + dept + "]";
}
}
// 정규직원
class formalEmployee extends Employee{
formalEmployee(String kubun, String name, String address, String dept,
int empNo, String position, int salary, int bonusRate) {
super(kubun, name, address, dept);
this.empNo = empNo;
this.position = position;
this.salary = salary;
this.bonusRate = bonusRate;
}
int empNo; // 직원번호
String position; // 직급
int salary; // 연봉
int bonusRate; // 보너스 지급율
// 정규직원의 봉급 : 연봉/12 + (연봉/12*보너스 지급율/100)이다
@Override
int getPay(){
return salary/12 + (salary/12*bonusRate/100);
}
@Override
public String toString() {
return super.toString() + "formalEmployee [empNo=" + empNo + ", position=" + position
+ ", salary=" + salary + ", bonusRate=" + bonusRate + "]";
}
}
// 비정규직
class InfomalEmployee extends Employee{
InfomalEmployee(String kubun, String name, String address, String dept,
Date expireDate, int kibonPay) {
super(kubun, name, address, dept);
this.expireDate = expireDate;
this.kibonPay = kibonPay;
}
Date expireDate; // 계약만료일
int kibonPay; // 기본임금
// 비정규직원의 봉급은 기본 임금이다.
@Override
int getPay(){
return kibonPay;
}
@Override
public String toString() {
return super.toString() + "InfomalEmployee [expireDate=" + expireDate + ", kibonPay="
+ kibonPay + "]";
}
}