반응형

가상 메서드 7

[C# 무료 동영상 강의] 21. 다형성

[C#] 6.2 다형성 [C#] 6.2 다형성 – 언제나 휴일 OOP 언어는 캡슐화, 상속과 더불어 중요한 특징으로 다형성이 있습니다. C#에서의 다형성은 크게 두 가지로 얘기합니다. 첫째로 변수는 여러 형식의 개체를 참조할 수 있다는 것입니다. C#에서는 기반 형식의 변수로 파생된 개체를 참조할 수 있습니다. 두 번째로 변수를 통해 메서드를 호출했을 때 구체적인 동작이 다를 수 있다는 것입니다. C#에서는 기반 형식의 멤버 메서드를 추상 메서드와 가상 메서드로 지정할 수 있는데 파생된 형식에서 재정의하면 기반 형식 ehpub.co.kr

[C++ 무료 동영상 강의] 39. 상속, 다형성 실습1 (상품, 할인 상품)

[C++ 무료 동영상 강의] 39. 상속, 다형성 실습1 (상품, 할인 상품) 다루는 내용상속,다형성,실습,상품 클래스 구현,할인 상품 클래스 구현,가상 메서드,가상 메서드 재정의, 무효화 메서드 사용하기 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 39. 상속, 다형성 실습1 (상품, 할인 상품)

[C++ 무료 동영상 강의] 33. 메서드의 다형성

[C++ 무료 동영상 강의] 33. 메서드의 다형성다루는 내용다형성,메서드의 다형성,가상 메서드, 재정의 (override) 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 33. 메서드의 다형성

[C++ 무료 동영상 강의] 31. 다형성 개요

[C++ 무료 동영상 강의] 31. 다형성 개요 다루는 내용다형성,형식의 다형성,메서드의 다형성, 가상 메서드 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 31. 다형성 개요

[C++] 33. 메서드의 다형성 (virtual 키워드와 가상 메서드)

이번에는 메서드의 다형성을 살펴볼게요. 형식의 다형성은 기반 형식 포인터 변수로 파생 형식 개체를 설정하거나 기반 형식 참조 변수로 파생 형식 개체를 설정할 수 있는 특징이죠. 그런데 형식의 다형성만 제공한다면 기반 형식 변수로 멤버 메서드를 호출하면 실제 개체 형식에 관계없이 기반 형식에 정의한 메서드가 동작합니다. 메서드의 다형성은 기반 형식 변수로 멤버 메서드를 호출하였을 때 실제 개체 형식에 정의한 메서드가 동작할 수 있는 OOP언어의 특징입니다.예를 들어 음악가 형식을 기반으로 파생한 형식으로 피아니스트와 드러머가 있다고 가정할게요. 그리고 음악가에는 “연주하다.”와 “인사하다.” 기능을 제공할거예요. “인사하다.” 기능은 파생 형식에 관계없이 같은 동작을 수행하지만 “연주하다.” 기능은 파생 ..

[C++] 31. 다형성 개요

이번에는 OOP의 주요 특징 세 가지인 캡슐화, 상속, 다형성 중에 다형성에 관해 살펴봅시다. 다형성은 기반 형식의 멤버를 파생 형식에서 상속받는 장점을 활용할 수 있는 OOP 특징입니다. 하나의 기반 형식에서 파생한 다양한 파생 클래스가 있을 때 같은 형식의 변수로 접근할 수 있으면 프로그래밍을 효과적으로 할 수 있겠죠. C++언어에서는 기반 형식의 포인터 변수로 파생 형식의 개체를 설정할 수 있습니다. 그리고 기반 형식의 참조 변수로 파생 형식의 개체를 설정할 수도 있습니다. class Musician { }; class Pianist:public Musician { }; int main() { Musician *musician = new Pianist(); //기반 형식 포인터 변수에 파생 형식 개..

[C++] 메서드의 다형성

6.2 메서드의 다형성 기반 클래스 형식 포인터 변수로 파생된 개체를 관리를 할 수 있다는 것은 매우 매력적입니다. 하지만 모든 행위가 모두 동일하게 동작한다면 굳이 기반 클래스와 파생 클래스로 나눌 필요가 없겠지요. 기반 클래스 형식 포인터 변수로 관리하는 개체의 멤버 메서드를 호출할 때에 파생된 각 클래스에서 새롭게 정의한 메서드를 호출할 수 있게 할 수 있습니다. 이처럼 사용하는 곳에서 호출하는 메서드는 동일하지만 실제 동작하는 모습이 다를 수 있다는 것도 중요한 다형성의 특징입니다. 만약, 오케스트라의 모든 음악가가 같은 연주를 한다면 어떤 느낌이 들까요? 아마도 각 음악가가 연주하는 모습이 다르지만 각각의 연주가 조화를 이루기 때문에 더욱 더 장엄하고 아름답게 들리는 것이로 생각됩니다. 프로그램..

반응형