package exam12_상속후_4_이클립스;
public class TestMain5 {
public static void main(String[] args) {
Engineer5 eng = new Engineer5("홍길동",100,"JAVA");
Manager5 m = new Manager5("이순신", 200, "인사");
Secretary5 s = new Secretary5("유관순", 200);
System.out.println(eng.getEmployee());
System.out.println(m.getEmployee());
System.out.println(s.getEmployee());
}
}
package exam12_상속후_4_이클립스;
public class Employee5 {
// 공통적인 속성
String name;
int salary;
// 생성자
public Employee5() {
super();
}
public Employee5(String name, int salary) {
super();
this.name = name;
this.salary = salary;
}
// 공통적인 기능
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
//
public String getEmployee() {
return name+"\t"+salary;
}
}
package exam12_상속후_4_이클립스;
public class Secretary5 extends Employee5 {
// 추가되는 속성없음
// getter & setter 메서드 없음
// override 메서드 필요없음. -> 부모메서드와 동일하기때문
// 생성자
public Secretary5() {
super();
}
public Secretary5(String name, int salary) {
super(name, salary);
}
}
package exam12_상속후_4_이클립스;
public class Manager5 extends Employee5 {
String depart; // Manager 에서만 추가된 속성
// 생성자
public Manager5() {
super();
}
public Manager5(String name, int salary) {
super(name, salary);
}
public Manager5(String name, int salary, String depart) {
super(name, salary);
this.depart = depart;
}
// getter & setter
public String getDepart() {
return depart;
}
public void setDepart(String depart) {
this.depart = depart;
}
// override
@Override
public String getEmployee() {
return super.getEmployee() + "\t" + depart;
}
}
package exam12_상속후_4_이클립스;
public class Engineer5 extends Employee5 {
String skill; // Engineer5 에서만 추가된 속성
// 생성자 -> 부모의 생성자를 가져옴.
// 부모클래스의 생성자가 2개이기에 생성자를 2개 가져온다.
public Engineer5() {
super();
}
public Engineer5(String name, int salary) {
super(name, salary);
// name, salary 의 초기화는 선언이 부모클래스에서 되었기에
// 부모클래서에서 초기화를 한다.
}
public Engineer5(String name, int salary, String skill) {
super(name, salary);
this.skill = skill;
}
// getter & setter
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
// override
@Override
public String getEmployee() {
return super.getEmployee()+"\t"+skill;
}
}