C++

[class] C++ - Polymorphism (다형성)

2,100
목차
  1. Polymorphism (다형성) 정의
  2. 다형성 예제1 - 부모 클래스 메서드로 다른 작업 수행
  3. 다형성 예제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 : 디자인 



분류 제목
class C++ - OOP (객체 지향 프로그래밍)
class C++ - Class (클래스) / Object (객체)
class C++ - Class Methods (클래스 메서드)
class C++ - Constructors (생성자)
class C++ - Access Specifiers (접근지정자)
class C++ - Encapsulation (캡슐화)
class C++ - Inheritance (상속)
class C++ - Polymorphism (다형성)
class C++ - Files (파일) - 파일생성/파일읽기/파일쓰기
class C++ - Exceptions (= Try...Catch..) - 에러 제어
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 1
웹유틸
회원센터
홈짱 PC버전 로그인