목차
- Polymorphism (다형성) 정의
- 다형성 예제1 - 부모 클래스 메서드로 다른 작업 수행
- 다형성 예제2 - 사용자 입력값 따라 다른 작업 수행
Polymorphism (다형성) 정의
다형성 (Polymorphism) : "다양한 형태" 의미.
즉,
상속 통해 서로 관련된 많은 클래스 있을 때,
부모 (메서드・속성)으로 다른 작업을 수행.
1.
장점 : 기존 코드 재사용 통해, 작업 세분화 가능.
2.
상속과 다형성 사용 이유 : 코드 재사용에 유용.
(∵ 새 클래스 생성 시, 기존 클래스의 필드와 메서드 재사용 가능.)
다형성 예제1 - 부모 클래스 메서드로 다른 작업 수행
Coding 부모클래스에 studyCoding 메서드 있을 때,
하위 클래스에서 동일 메서드로 다른 작업 수행 가능.
[예제]
파일명: main.cpp
#include <iostream>
#include <string>
using namespace std;
class Coding { // 부모클래스
public:
void studyCoding() {
cout << "코딩언어 강의 \n" ;
}
};
class Html : public Coding { // 자식클래스
public:
void studyCoding() {
cout << "HTML : 기본틀 \n" ;
}
};
class Css : public Coding { // 자식클래스
public:
void studyCoding() {
cout << "CSS : 디자인 \n" ;
}
};
int main() {
Coding coding;
Html html;
Css css;
coding.studyCoding();
html.studyCoding();
css.studyCoding();
return 0;
}
결과값:
코딩언어 강의
HTML : 기본틀
CSS : 디자인
다형성 예제2 - 사용자 입력값 따라 다른 작업 수행
사용자 입력값에 따라 동일 메서드로 다른 작업 수행.
[예제]
파일명: main.cpp
#include <iostream>
#include <string>
using namespace std;
class Coding { // 부모클래스
public:
void studyCoding() {
cout << "코딩언어 강의 \n" ;
}
};
class Html : public Coding { // 자식클래스
public:
void studyCoding() {
cout << "HTML : 기본틀 \n" ;
}
};
class Css : public Coding { // 자식클래스
public:
void studyCoding() {
cout << "CSS : 디자인 \n" ;
}
};
int main() {
int input;
cout << "HTML: 1, CSS: 2 ? ";
cin >> input;
if(input ==1) {
Html html;
html.studyCoding();
}
if(input ==2) {
Css css;
css.studyCoding();
}
return 0;
}
결과값:
사용자가 1입력 시 : HTML : 기본틀
사용자가 2입력 시 : CSS : 디자인
최신댓글