IT/Java

자바 상속, super, 멤버변수 오버라이드(override)

노마드오브 2018. 7. 17. 00:12

파일명 : 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()의 끝


}