[메소드 오버로딩]
-하나의 메소드를 여러 가지로 구현하는 것
class MainApp
{
static int GetRectangleArea(int width, int height)
{
return width * height;
}
static float GetRectangleArea(float width, float height)
{
return width * height;
}
static int Sum(int a, int b)
{
return a + b;
}
static int Sum(int a, int b, int c)
{
return a + b + c;
}
static void Main(string[] args)
{
Console.WriteLine(GetRectangleArea(20, 50));
Console.WriteLine(GetRectangleArea(1.2f, 3.5f));
Console.WriteLine(Sum(1, 2));
Console.WriteLine(Sum(10, 11, 12));
}
}
[메소드 오버라이딩]
-기반 클래스에서 상속받은 메소드를 파생 클래스에서 재정의하는 것.
-다형성을 구현하기 위해서 오버라이딩 사용한다.
-사용하는 경우
1).추상 클래스를 상속받아 추상메소드를 override로 구현
2).virtual 메소드가 있는 클래스를 상속 받아 override로 구현
(인터페이스는 override로 구현하지 않는다.)
//가상 함수
class ChessPiece
{
public virtual void Move()
{
Console.WriteLine("이동할 수 없음");
}
}
class Pawn : ChessPiece
{ public override void Move()
{
Console.WriteLine("이동 가능");
}
}
//인터페이스
interface ICar{
void Drive();
}
class Car : ICar
{
public void Drive(){
Console.WriteLine("Driving !");
}
}
//추상 클래스
public abstract class Monster
{
public abstract void Shout();
}
class Orc : Monster
{
public override void Shout()
{
Console.WriteLine("끄아악!");
}
}
'3_c# > C#문법' 카테고리의 다른 글
C# 배열, 컬렉션, 인덱서 (0) | 2024.11.20 |
---|---|
C# 프로퍼티 (1) | 2024.11.20 |
C# TXT파일 접근 - StreamReader, StreamWriter (0) | 2023.07.18 |
C# 클래스 (0) | 2023.07.15 |
C# 예외 처리 : 개념 정리 (0) | 2023.07.13 |