목차
다형성 (Polymorphism) 정의
다형성 예제1 - 부모 메서드와 동일명의 자식 메서드
다형성 예제2 - 사용자 입력값 따라 다른 작업 수행
다형성 (Polymorphism) 정의
1.
다형성 (Polymorphism) : "다양한 형태" 의미.
즉,
상속 통해 서로 관련된 많은 클래스 있을 때,
부모 (메서드・속성)으로 다른 작업을 수행.
※ 부모 클래스 변수에 자식 클래스의 인스턴스 할당.
※ 부모 클래스 배열변수에 자식클래스 인스턴스 담아 사용할 때 유용.
2.
장점 : 기존 코드 재사용 통해, 작업 세분화 가능.
다형성 예제1 - 부모 메서드와 동일명의 자식 메서드
Coding 부모클래스에 studyCoding 메서드 있을 때,
하위 클래스에서 동일 메서드로 다른 작업 수행 가능.
1. C:\Users\사용자명\Hz.java 생성.
class Coding {
public void studyCoding () {
System.out.println("코딩언어 강의");
}
}
class Html extends Coding {
public void studyCoding () {
System.out.println("HTML : 기본틀");
}
}
class Css extends Coding {
public void studyCoding () {
System.out.println("CSS : 디자인");
}
}
class Hz {
public static void main(String[] args) {
Coding coding = new Coding ();
Coding html = new Html(); // 다형성
Coding css = new Css(); // 다형성
coding.studyCoding ();
html.studyCoding ();
css.studyCoding ();
}
}
2. Hz.java 컴파일.
C:\Users\사용자명>javac -encoding UTF-8 Hz.java
3. Hz 클래스 실행.
C:\Users\aspire>java Hz
결과값:
코딩언어 강의
HTML : 기본틀
CSS : 디자인
다형성 예제2 - 사용자 입력값 따라 다른 작업 수행
사용자 입력값에 따라 동일 메서드로 다른 작업 수행.
1. C:\Users\사용자명\Hz.java 생성.
import java.util.Scanner;
class Coding {
public void studyCoding() {
System.out.println("코딩언어 강의");
}
}
class Html extends Coding {
public void studyCoding() {
System.out.println("HTML : 기본틀");
}
}
class Css extends Coding {
public void studyCoding() {
System.out.println("CSS : 디자인");
}
}
class Hz {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("HTML: 1, CSS: 2 ?");
int input = scanner.nextInt();
Coding coding;
if(input == 1) {
coding = new Html();
coding.studyCoding();
} else if (input == 2) {
coding = new Css();
coding.studyCoding();
}
}
}
2. Hz.java 컴파일.
C:\Users\사용자명>javac -encoding UTF-8 Hz.java
3. Hz 클래스 실행.
C:\Users\aspire>java Hz
결과값:
사용자가 1입력 시 : HTML : 기본틀
사용자가 2입력 시 : CSS : 디자인
주소 복사
랜덤 이동
최신댓글