Java (자바) 독학 제어문 _ 다형성 (Polymorphism)
1. 다형성 (Polymorphism)이란?
- 하나의 객체나 메소드가 여러 가지 형태를 갖는 것
- Interface와 함께 많이 사용됨
- 필수 조건
1) 상속 관계
2) 메소드 오버라이딩
3) 업캐스팅
- 업캐스팅 (up casting): 부모 클래스를 호출하고 자식 클래스로 초기화하는 것
부모클래스 부모변수명 = new 자식클래스();
** 자식 클래스 내부의 객체 등에는 접근 불가능
- 다운캐스팅 (down casting): 업캐스팅 한 부분은 실제 사용 시점에서 자식 클래스로 형변환시켜야 함
((자식클래스)부모변수명).객체, 메소드 등..;
2. 다형성(Polymorphism) Test
Class Name: PolymorphismSuperTest_01
Class Name: PolymorphismSubTest_01
Superclass: PolymorphismSuperTest_01
Class Name: PolymorphismMainTest_01
public static void main(String[] args) 클릭
PolymorphismSuperTest_01 코드
1
2
3
4
5
6
7
8
9
10
|
public class PolymorphismSuperTest_01 {
public void hello() {
System.out.println("안녕하세요.");
}
}
|
cs |
PolymorphismSubTest_01 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class PolymorphismSubTest_01 extends PolymorphismSuperTest_01 {
@Override
public void hello() {
System.out.println("반갑습니다.");
}
public void name() {
System.out.println("Ecoder 입니다.");
}
}
|
cs |
PolymorphismMainTest_01 코드
1
2
3
4
5
6
7
8
9
10
11
12
|
public class PolymorphismMainTest_01 {
public static void main(String[] args) {
PolymorphismSuperTest_01 p1 = new PolymorphismSubTest_01(); // 업캐스팅
p1.hello(); // 자식 클래스의 hello가 출력
((PolymorphismSubTest_01)p1).name(); // 다운캐스팅: p1으로는 name 메소드 호출 불가능
}
}
|
cs |
저장(ctrl + s) 후 F11을 눌러 출력되는 내용 확인하기
3. 과제
부모 클래스에서 문장 하나를 출력하는 메소드 제작
자식 클래스에서 부모 클래스 메소드 override와 다른 문장을 출력하는 메소드 제작
메인 클래스에서
1. 부모 클래스를 호출하여 메소드 출력
2. 업케스팅하여 자식 클래스 override 메소드 호출
3. 업케스팅한 변수를 다운케스팅 하여 추가 메소드 호출
'Java (자바)' 카테고리의 다른 글
쉽게 따라하는 Java (자바) 독학 _ 인터페이스 (Interface) (0) | 2022.12.18 |
---|---|
쉽게 따라하는 Java (자바) 독학 _ 메소드 오버로딩 (Overloading), 오버라이딩(Overriding) (0) | 2022.12.16 |
쉽게 따라하는 Java (자바) 독학 _ 상속 (Inheritance) (0) | 2022.12.14 |
쉽게 따라하는 Java (자바) 독학 _ 생성자 (Constructor) (0) | 2022.12.13 |
쉽게 따라하는 Java (자바) 독학 _ 접근 지정자 (public, private) (0) | 2022.12.12 |
댓글