상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

7 장 프렌드와 연산자 중복 1 명품 C++. 친구란 ? 2 우리 집 냉장고 내 침대 우리 집 TV 우리 집 식탁 친구 친구 ? 내 가족의 일원은 아니지만 내 가족과 동일한 권한을 가진 일원으로 인정받은 사람.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
5. 접근 제한자의 이해 SCJP 자격증 프로젝트 발표자 : 노효진.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
Power Java 제3장 이클립스 사용하기.
최윤정 Java 프로그래밍 클래스 상속 최윤정
5장. 객체지향과 클래스.
JAVA 클래스와 멤버 2014년 4월 2일 19:00 손은경 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실.
주)INVENTORNICS 노창배 소프트웨어 김 경 순
제 4 장 관계 학기 소프트웨어설계.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
- Pipeline Submission : submit - Pipeline 등록 : register
제 8 장 상속.
명품 C++ 9장 가상 함수와 추상 클래스.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
명품 C++ 7장 프렌드와 연산자 중복.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
제4장 클래스와 객체 객체 지향 기법을 이해한다. 클래스를 작성할 수 있다. 클래스에서 객체를 생성할 수 있다.
제7장 클래스와 객체.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
Java 6장. 클래스 : 속성 public class SumTest {
명품 C++ 8장 상속.
Lesson 7. 클래스와 메소드 - 1.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
14. 예외처리.
10장. 예외처리.
상속 및 동적바인딩 사용하기 USING INHERITANCE AND DYNAMIC BINDING
6장 클래스 6.1 클래스의 일반 구조 6.2 클래스 선언 6.3 객체의 생성 6.4 멤버 변수 6.5 멤버변수 접근 한정자
13. 연산자 오버로딩.
7장 인터페이스와 추상 클래스.
Method & library.
자바 5.0 프로그래밍.
Device Driver 임베디드 시스템 I.
명품 C++ 9장 가상 함수와 추상 클래스.
Lesson 2. 기본 데이터형.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
제 5 장 집합연관, 복합연관, 인터페이스, 실체화 (교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006) 학기 소프트웨어설계.
10장 객체-지향 프로그래밍 I ©창병모.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Power Java 제11장 상속.
JA A V W. 06.
12. 상속 : 고급.
객체기반 SW설계 팀활동지 4.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
Chapter 13. 템플릿(Template) 1
처음으로 배우는 C 프로그래밍 제6부 C++의 소개 제 14 장 추가적인 클래스 기능.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Lecture 04 객체지향 페러다임 Kwang-Man Ko
2015년 2학년 1반.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
3. 모듈 (5장. 모듈).
서브클래스 조 병 규 한 국 교 통 대 학 교 SQ Lab..
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
실습 UBLAB.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 04. 클래스의 완성.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 07. 상속의 이해.
자바 객체 지향 프로그래밍 Ps lab 김윤경.
Intelligent software Lab. 전재원
Presentation transcript:

상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스 (Base class) 파생 클래스 (Derived class) 두원공과대학 소프트웨어개발과 이 원 주

목 차 교육 목표 상속(Inheritance) 상속시 생성자/소멸자 호출 순서 베이스 클래스 인수전달 다중상속(Multiple Inheritance) 프로그래밍 실습 두원공과대학 소프트웨어개발과 이 원 주

상속(Inheritance) (1) 상속(Inheritance) 정의 Format 하위클래스가 상위클래스의 속성을 전달 받는 것 Format class 파생클래스명: public[private] 베이스클래스명{ …………… }; private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스 (Base class) 파생 클래스 (Derived class) 두원공과대학 소프트웨어개발과 이 원 주

상속(Inheritance) (2) 파생클래스의 공용멤버로 상속 두원공과대학 소프트웨어개발과 이 원 주

상속(Inheritance) (3) 파생클래스의 전용멤버로 상속 두원공과대학 소프트웨어개발과 이 원 주

상속(Inheritance) (4) 두원공과대학 소프트웨어개발과 이 원 주

상속(Inheritance) (5) 보호(protected)부분의 상속 class 클래스명 { [private:] //전용부분 …… //클래스 외부접근 불가능, 상속 불가능 protected: //보호부분 …… //클래스 외부접근 불가능, 상속가능 public: //공용부분 …… //클래스 외부접근 가능, 상속 가능 }; private 전용부분 전용부분 보호부분 보호부분 public 공용부분 공용부분 기본 클래스 (Base class) 파생 클래스 (Derived class) 두원공과대학 소프트웨어개발과 이 원 주

상속(Inheritance) (6) 두원공과대학 소프트웨어개발과 이 원 주

상속(Inheritance) (7) 두원공과대학 소프트웨어개발과 이 원 주

상속시 생성자/소멸자 호출순서(1) 생성자 호출순서 소멸자 호출순서 상속시 생성자/소멸자 호출순서(1) 생성자 호출순서 파생되는 순서에 따라 호출(베이스 클래스 > 파생 클래스) 소멸자 호출순서 생성자의 역순으로 호출(파생 클래스 > 베이스 클래스) 두원공과대학 소프트웨어개발과 이 원 주

상속시 생성자/소멸자 호출순서(2) 두원공과대학 소프트웨어개발과 이 원 주

베이스 클래스 생성자 인수전달 (1) 인수전달 베이스 클래스의 생성자에 인수가 전달되는 경우 베이스 클래스, 파생클래스에 전달되는 모든 인수를 파생클래스에 전달 파생클래스의 생성자 정의 Format 파생 클래스_생성자명(인수 리스트) : 베이스 클래스_생성자명(인수 리스트){ …………. } 두원공과대학 소프트웨어개발과 이 원 주

베이스 클래스 생성자 인수전달 (2) 두원공과대학 소프트웨어개발과 이 원 주

베이스 클래스 생성자 인수전달 (2) 두원공과대학 소프트웨어개발과 이 원 주

다중 상속(Multiple Inheritance) (1) 정의 두 개 이상의 클래스로부터 속성을 물려받는 상속 유형 1 Format 전용부분 A 보호부분 class A { ..... }; class B : public A { ..… }; class C : public B { ..… }; 공용부분 전용부분 B 보호부분 공용부분 전용부분 C 보호부분 공용부분 두원공과대학 소프트웨어개발과 이 원 주

다중 상속(Multiple Inheritance) (2) 유형 2 A B C 전용부분 전용부분 전용부분 보호부분 보호부분 보호부분 공용부분 공용부분 공용부분 전용부분 보호부분 공용부분 D Format class A { ..... }; class B { ..... }; class D : public A, public B, public C { ..… }; 두원공과대학 소프트웨어개발과 이 원 주

다중 상속(Multiple Inheritance) (3) 유형 3 전용부분 전용부분 A 보호부분 B 보호부분 공용부분 공용부분 전용부분 전용부분 C 보호부분 보호부분 D 공용부분 공용부분 Format class A { ..... }; class B { ..... }; class C : public A, public B { ..... }; class D : public B { ..… }; class E : public C, public D { ..... }; 전용부분 E 보호부분 공용부분 두원공과대학 소프트웨어개발과 이 원 주

다중 상속(Multiple Inheritance) (4) 유형 2의 예 두원공과대학 소프트웨어개발과 이 원 주

다중 상속(Multiple Inheritance) (5) 두원공과대학 소프트웨어개발과 이 원 주

다중 상속(Multiple Inheritance) (6) 가상 베이스 클래스(Virtual base class) 클래스 D의 경우 문제점 클래스 A의 멤버를 참조할 때, 클래스 D내에는 A가 두 번 복사된다. 이 때 클래스 B를 통하여 참조할 것인지 아니면 클래스 C 통하여 참조할 것인지 하는 모호성이 발생 전용부분 A 보호부분 공용부분 전용부분 전용부분 B 보호부분 보호부분 C 공용부분 공용부분 해결방법(가상 베이스 클래스) 클래스 A만을 복사하도록 하는 가상 베이스 클래스 기능 이용 전용부분 D 보호부분 공용부분 두원공과대학 소프트웨어개발과 이 원 주

다중 상속(Multiple Inheritance) (7) 예 두원공과대학 소프트웨어개발과 이 원 주

프로그래밍 실습 실습 실습시간(30분) 아래와 같이 베이스클래스의 공용부분 멤버함수를 파생클래스의 전용부분으로 상속되도록 프로그램을 작성하시요. 기본 클래스 (Base class) 파생 클래스 (Derived class) 상속 전용 부분 int x int y setx() showx() setxy() showx() 공용 부분 setx() : 전용변수(x)에 값 대입 showx() : 전용변수(x)에 값 출력 setxy() : 전용변수(x, y)에 값 대입 showxy() : 전용변수(x, y)에 값 출력 두원공과대학 소프트웨어개발과 이 원 주

프로그래밍 실습 결과 두원공과대학 소프트웨어개발과 이 원 주

정 리 상속(Inheritance) 상속시 생성자/소멸자 호출 순서 베이스 클래스 인수전달 다중상속(Multiple Inheritance) 프로그래밍 실습 두원공과대학 소프트웨어개발과 이 원 주