일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 유튜브 동영상 강의
- 표준 라이브러리 함수
- 클래스 다이어그램
- 동영상
- 언제나휴일
- 소스 코드
- 파이썬
- c언어
- 충남 천안
- 동영상 강의
- 무료 동영상 강의
- 추천
- 캡슐화
- 소켓 통신
- 네트워크 프로그래밍
- c#
- 산책하기 좋은 곳
- 프로젝트
- 안드로이드 앱 개발
- 강의
- 졸업 작품 소재
- 실습으로 다지는 c#
- 언제나 휴일
- 알고리즘
- 독립기념관
- 원격 제어 프로그램
- 실습
- 표준 입출력
- Windows Forms
- C++
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
[실습으로 다지는 C#] 일반화 관계(Generalization) 실습 – 포유류, 호랑이, 사자 본문
이번 강의에서는 일반화 관계(Generalization)를 코드로 표현하는 실습입니다.
일반화 관계는 “A는 B이다.”로 표현할 수 있는 형식 사이의 관계라고 했어요. 이번 실습에서는 “호랑이는 포유류이다.”, “사자는 포유류이다.”를 표현할 거예요.
포유류는 공통적으로 새끼에게 젖을 물리는 행위를 합니다. 그리고 울기도 합니다. 물론, 호랑이와 사자는 울음 소리가 다르죠.
이러한 내용을 실습해 볼 거예요.
먼저 클래스 다이어그램을 작성하면 다음처럼 작성할 수 있어요.
여러분께서 실습할 내용과 클래스 다이어그램을 토대로 구현을 해 보세요. 그리고 비교해 보시기 바랍니다.
기반 형식 포유류(Mammal)에는 울다(Cry) 메서드를 약속합니다. 기능을 구현하지 않고 약속만 할 때 abstract 키워드를 명시하여 추상 메서드로 만듭니다. 또한 추상 멤버가 하나라도 있다면 해당 형식은 반드시 추상 클래스로 정의하여야 합니다.
using System;
namespace 일반화_관계_실습
{
abstract class Mammal
{
public abstract void Cry();
public void Nurse()
{
Console.WriteLine("새끼에게 젖을 물리다.");
}
}
}
호랑이와 사자는 포유류를 기반으로 파생 형식으로 정의합니다. 그리고 기반 형식에 추상 메서드로 정의한 Cry를 반드시 재정의해 주어야 합니다.
using System;
namespace 일반화_관계_실습
{
class Tiger:Mammal
{
public override void Cry()
{
Console.WriteLine("어흥~ 난 호랑이야.");
}
}
}
using System;
namespace 일반화_관계_실습
{
class Lion:Mammal
{
public override void Cry()
{
Console.WriteLine("어흥~ 난 사자야.");
}
}
}
마지막으로 테스트하는 코드에서는 호랑이와 사자 개체를 생성하여 Cry와 Nurse 메서드를 호출해 보기로 합시다.
일반화 관계에서는 기반 형식에 정의한 멤버를 파생 형식에서 상속받는 특징이 있기 때문에 Nurse 메서드를 호출할 수 있어요.
//http://ehpub.co.kr
//실습으로 다지는 C#
//일반화 관계 실습 - 포유류, 호랑이, 사자
namespace 일반화_관계_실습
{
class Program
{
static void Main(string[] args)
{
Mammal[] mammals = new Mammal[2];
mammals[0] = new Tiger();
mammals[1] = new Lion();
foreach(Mammal mammal in mammals)
{
mammal.Cry();
mammal.Nurse();
}
}
}
}
실행 결과는 다음과 같습니다.
어흥~ 난 호랑이야.
새끼에게 젖을 물리다.
어흥~ 난 사자야.
새끼에게 젖을 물리다.
언제나휴일 여행 및 산책
'C# > 실습으로 다지는 C#' 카테고리의 다른 글
[실습으로 다지는 C#] 연관 관계(Association) 실습 – 의사, 약사 (1) | 2025.01.07 |
---|---|
[실습으로 다지는 C#] 직접 연관 관계(Direct Association) 실습 – 계산기, 사각형 (0) | 2025.01.05 |
[실습으로 다지는 C#] 구성(Composition) 관계 실습 – 사람, 눈 (0) | 2025.01.05 |
[실습으로 다지는 C#] 집합(Aggregation) 관계 실습 – 쇼핑 센터, 상품 (0) | 2025.01.05 |
[실습으로 다지는 C#] 클래스 간의 관계 (0) | 2025.01.05 |
[실습으로 다지는 C#] 캡슐화 실습 – 학생 클래스 정의하기 (0) | 2025.01.05 |
[실습으로 다지는 C#] 랜덤 값 맞추기 (0) | 2025.01.05 |
[실습으로 다지는 C#] 암스트롱의 수 (0) | 2025.01.05 |