자바 상속, super, 멤버변수 오버라이드(override)
파일명 : Test4.java
package com.test;
// 상속 : A는 B이다. 자식클래스는 부모클래스이다.
// 관리자는 직원이다.
// super. this. 객체의 접근가능영역 기준으로 사용
// super. 부모멤버와 자식멤버 이름이 같을 경우 서로 구별을 위해 사용
class Employee {
// 멤버변수 name salary
String name;
int salary;
// 기본생성자
Employee() {}
// name salary 받는 생성자
Employee(String name, int salary) {
this.name = name;
this.salary = salary;
}
// 메소드 getEmployee() return name+", "+salary
String getEmployee() {
return name+", "+salary;
}
} // Employee class
class Manager extends Employee {
String name; // 멤버변수 오버라이드(override)
int salary; // 멤버변수 오버라이드(override)
// 멤버변수 depart
String depart;
// 생성자 name salary depart 받는 생성자
Manager(String name, int salary, String depart) { // 물려받는 요소는 super라고 쓰는 게 좋다
super.name = name;
super.salary = salary;
this.depart = depart;
}
// 메소드 getManager() return name+", "+salary+", "+depart
String getManager() {
// return name+", "+salary+", "+depart;
return this.name+", "+super.name+", "
+salary+", "+depart;
}
} // Manager class
public class Test4 {
public static void main(String[] args) {
// 객체생성 Employee emp
Employee emp = new Employee("홍길동", 10000);
// 출력 메소드 호출
System.out.println(emp.getEmployee());
// 객체생성 Manager man
Manager man = new Manager("이몽룡", 2000, "총무부");
System.out.println(man.getEmployee());
System.out.println(man.getManager());
man.name = "성춘향";
System.out.println(man.getManager());
} // main()의 끝
}