객체 지향 프로그래밍 : 가상함수와 추상 클래스

2021. 6. 13. 15:24·3 - 2학기/객체 지향 프로그래밍

1. 클래스 형 변환 규칙

2. 가상 함수

3. 추상 클래스와 인터페이스 상속

 

클래스 형 변환이란 어떤 개념인가?

상속 관계에 놓은 클래스 간에만 가능하다.

파생 클래스에서 기본 클래스쪽으로 형 변환만 가능하다

is-a 관계가 성립하는 방향으로만 일어난다.

 

클래스 형 변환 규칙

파생 클래스의 객체는 기본 클래스의 객체로 형 변환 가능

파생 클래스의 포인터는 기본 클래스의 포인터로 형 변환 가능

파생 클래스의 레퍼런스는 기본 클래스의 레퍼런스로 형 변환 가능

 

파생 클래스의 기본 클래스로 형 변환 경우

1. is - a 관계가 성립하는 쪽으로의 형 변환

2. 파생 클래스 포인터를 기본 클래스 포인터로 형 변환

3. 

 

 

가상 함수

기본 클래스 포인터로 호출하더라도 파생 클래스에 재정의된 함수를 호출하도록 만들려면?

-> 기본 클래스의 멤버 함수를 가상 함수로 선언

 

3. 추상 클래스와 인터페이스 상속

 

순수 가상함수

- 파생 클래스에서 재정의할 함수를 알려주는 역할

- 실행할 코드를 작성할 목적이 아님

 

- 파생 클래스에서 재정의될 함수에 대해서 미리 원형이 필요하기는 하지만 기본 클래스에서는 아직 구현할 필요가 없을 때 사용

- 순수 가상 함수는 파생 클래스에서 재정의하도록 원형만 미리 준비하는 것이라는 의미, 파생 클래스는 상속 받은 순수 가상 함수를 반드시 재정의해야 한다.

 

추상 클래스란?

최소한 하나의 순수 가상 함수를 갖는 클래스

- 객체를 생성할 수 없다.

- 포인터 변수나 레퍼런스 변수는 정의할 수 있다.

(파생 클래스 객체를 가리키는 용도, 파생 클래스 객체에 접근하는 인터페이스 역할을 제공)

 

'3 - 2학기 > 객체 지향 프로그래밍' 카테고리의 다른 글

객체 지향 프로그래밍 : 상속  (0) 2021.06.13
객체지향 프로그래밍 : 멤버함수와 클래스의 활용  (0) 2021.06.13
객체지향 프로그래밍 : 생성자와 소멸자  (0) 2021.06.13
객체 지향 프로그래밍: 클래스 기초  (0) 2021.06.11
'3 - 2학기/객체 지향 프로그래밍' 카테고리의 다른 글
  • 객체 지향 프로그래밍 : 상속
  • 객체지향 프로그래밍 : 멤버함수와 클래스의 활용
  • 객체지향 프로그래밍 : 생성자와 소멸자
  • 객체 지향 프로그래밍: 클래스 기초
harvartz의 일지
harvartz의 일지
harvartz_studyharvartz의 일지 님의 블로그입니다.
harvartz의 일지
harvartz_study
harvartz의 일지
전체
오늘
어제
  • 분류 전체보기 (32)
    • 4 - 2학기 (2)
      • 시스템 프로그래밍 (0)
      • 자연어 처리 (0)
      • 정보 검색 (0)
      • 정보 보호 (1)
      • 클라우드 컴퓨팅 (0)
      • 데이터 베이스 (1)
    • 3 - 2학기 (17)
      • 객체 지향 프로그래밍 (5)
      • 객체 지향 설계 (0)
      • 영상 처리 (5)
      • 네트워크 (7)
    • 리눅스 (9)
    • Git (1)
    • 파이썬 문법 (0)
    • Web (2)
    • 코딩 테스트 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

11

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.3
harvartz의 일지
객체 지향 프로그래밍 : 가상함수와 추상 클래스
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.