day16_PolymorphismEx08

육희영·2021년 10월 28일
0
package com.java1.day16;

public class PolymorphismEx08 {
	public static void main(String[] args) {
		Parent6 p = new Child6();	// 다형적 표현
		p.aaa();	// A6 클래스의 aaa() 메서드 호출 
		p.bbb();	// B6 클래스의 bbb() 메서드 호출
//		p.ccc();	// 컴파일 에러 발생!
		//자손 타입 -> 조상타입 : 형변환 생략가능
		//자손타입  <- 조상타입 : 형변환 생략 불가	
		((Child6)p).ccc();	//조상 -> 자손 타입
	}
}

class Parent6 {
	public void aaa() {
		System.out.println("Parent aaa");
	}
	public void bbb() {
		System.out.println("Parent bbb");
	}
}

class Child6 extends Parent6{
	
	@Override
	public void bbb() {
		System.out.println("Child bbb1");
	}
	
	public void ccc() {
		System.out.println("Child ccc");
	}
}

/* 다형성이 이해가 안간다면 두가지만 기억하자!
 * 필드는 무조건 상위 클래스의 필드만 사용할수 있다.
 * 메서드도 상위 클래스의 메서드만 사용할수 있는데 오버라이딩이 되었다면 하위 클래스의 메서드가 실행된다.
 */

출력결과

Parent aaa
Child bbb1
Child ccc

0개의 댓글

관련 채용 정보