... | ... | @@ -623,33 +623,66 @@ GetHashCode는 해당 객체를 구별할 수 있는 key값을 반환하면 된 |
|
|
|
|
|
#### 메서드 오버로드
|
|
|
```c#
|
|
|
|
|
|
class Animal
|
|
|
{
|
|
|
public void Sound()
|
|
|
public void PrintSound()
|
|
|
{
|
|
|
Console.WriteLine("소리를 낸다.");
|
|
|
}
|
|
|
|
|
|
public void Sound(Cat cat)
|
|
|
public void PrintSound(Dog dog) //개를 받으면 멍멍소리를 낸다.
|
|
|
{
|
|
|
Console.WriteLine("야옹");
|
|
|
Console.WriteLine(dog.Sound);
|
|
|
}
|
|
|
|
|
|
public void Sound(Dog dog)
|
|
|
public void PrintSound(Cat cat) //고양이를 받으면 야옹소리를 낸다.
|
|
|
{
|
|
|
Console.WriteLine("멍멍");
|
|
|
Console.WriteLine(cat.Sound);
|
|
|
}
|
|
|
|
|
|
public void Sound(Whale whale)
|
|
|
public void PrintSound(Whale whale) //고래를 받으면 고래소리를 낸다.
|
|
|
{
|
|
|
Console.WriteLine("고래고래");
|
|
|
Console.WriteLine(whale.Sound);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
animal.Sound(); //소리를 낸다 출력. //메서드의 이름은 같지만 매개변수에 따라서 다른 결과 출력.
|
|
|
animal.Sound(dog); //멍멍 출력.
|
|
|
animal.Sound(cat); //야옹 출력.
|
|
|
animal.Sound(whale); //고래고래 출력.
|
|
|
class Dog : Animal
|
|
|
{
|
|
|
string sound = "멍멍";
|
|
|
|
|
|
public string Sound { get => sound; set => sound = value; }
|
|
|
}
|
|
|
|
|
|
class Cat : Animal
|
|
|
{
|
|
|
string sound = "야옹";
|
|
|
|
|
|
public string Sound { get => sound; set => sound = value; }
|
|
|
}
|
|
|
|
|
|
class Whale : Animal
|
|
|
{
|
|
|
string sound = "고래고래";
|
|
|
|
|
|
public string Sound { get => sound; set => sound = value; }
|
|
|
}
|
|
|
|
|
|
class OverloadEx
|
|
|
{
|
|
|
public static void Main()
|
|
|
{
|
|
|
Animal animal = new Animal();
|
|
|
Dog dog = new Dog();
|
|
|
Cat cat = new Cat();
|
|
|
Whale whale = new Whale();
|
|
|
|
|
|
animal.PrintSound(); //소리를 낸다. 출력
|
|
|
animal.PrintSound(dog); //멍멍 출력
|
|
|
animal.PrintSound(cat); //야옹 출력
|
|
|
animal.PrintSound(whale); //고래고래 출력 //메서드 이름은 같지만 매개변수에 따라서 다른 결과가 출력된다.
|
|
|
}
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
... | ... | |