본문 바로가기
Programming/JAVA(eclipse)

java 9일차 _01. 다형성

by yoon9i 2024. 3. 20.

1. 다형성
- 타입비교하는 방법: 변수명 instanceof 클래스
- 형변환

ex)
Employee6 [] empArray = {
new Employee6("강감찬", 200),
new Manager6("이순신1", 200, "인사"),
new Engineer6("홍길동", 100, "JAVA"),
new Manager6("이순신2", 200, "인사"),
new Secretary6("유관순", 200),
new Manager6("이순신3", 200, "인사")
};

문제1: 배열에서 Manager 만 출력하시오.
    for( Employee e: empArray) {
if (e instanceof Manager) {
    System.out.println( e.getEmployee( ) );
}
     }

문제2: 배열에서 Manager 에 추가된 depart 만 출력하시오.
   

for( Employee e: empArray) {
   if (e instanceof Manager) {
    // 형변환
    Manager m = (Manager)e;
    System.out.println( e.depart );
   }
 }

package exam12_상속후_5_다형성;

public class TestMain6_3 {

	public static void main(String[] args) {
		// 2024-03-20
		
		// 다형성 활용 (예) - 배열
		Employee6 [] empArray = {
				new Employee6("강감찬", 200),
				new Manager6("이순신1", 200, "인사"),
				new Engineer6("홍길동", 100, "JAVA"),
				new Manager6("이순신2", 200, "인사"),
				new Secretary6("유관순", 200),
				new Manager6("이순신3", 200, "인사")
		};
		
		// 1. 배열출력
		for (Employee6 e6 : empArray) {
			System.out.println(e6.getEmployee());
		}
		System.out.println();
		
		// 2. Manager 만 출력하시오
		for (Employee6 e6 : empArray) {
			if(e6 instanceof Manager6) {
				System.out.println(e6.getEmployee());				
			}
		}
		System.out.println();
		
		// 3. 배열에서 Manager 에 추가된 depart 만 출력하시오.
		for(Employee6 e6: empArray) {
			if(e6 instanceof Manager6) {
				// 형변환
				Manager6 m6 = (Manager6)e6; 
				System.out.println(m6.depart);
			}
		}
	}

}

 

'Programming > JAVA(eclipse)' 카테고리의 다른 글

java 9일차 _03. 접근지정자  (0) 2024.03.20
java 9일차 _02. Object 의 toString( )  (0) 2024.03.20
java 9일차 _ 8일차 리뷰  (0) 2024.03.20
java 8일차 _03. 다형성  (0) 2024.03.19
java 8일차_ 02. 상속(2)  (0) 2024.03.19