728x90
반응형
오버로드란?
한 클래스 안에 같은 이름이지만 인수의 수나 형이 서로 다른 메소드를 여러 개 정의하는 것이다.
반환 값만 다른 메소드는 오류가 난다.
class Calc
{
public int add(int a, int b)
{
return a + b;
}
public int add(int a)
{
return a + 1;
}
public double add(double a, double b)
{
return a + b;
}
}
오버로드한 메소드의 호출
메소드를 호출할 때 전달한 인수에 따라 인수의 수와 형에 대응하는 메소드가 호출된다.
*** 같은 이름의 메소드라도 인수의 수나 형이 다르다.
코딩 ex)
using System;
class Cat
{
string name;
string place;
int age;
public void setData(string n, string p, int a)
{
name = n;
place = p;
age = a;
}
public void print()
{
Console.WriteLine(place + ":" + name + " " + age + "세"); //cat2.print();와 대응
}
public void print(string p, int a)
{
place = p;
Console.WriteLine(place + ":고양이는" + a + "마리입니다."); //cat3.print("뒷집", 0); 과 대응
}
public vodi print(string variety)
{
Console.WriteLine(place + ":" + name + " " + age + "세" + variety); //cat1.print("잡종"); 와 대응
}
}
class Pet
{
static void Main()
{
Cat cat1 = new Cat();
Cat cat2 = new Cat();
Cat cat3 = new Cat();
cat1.setData("로빈", "우리집", 10);
cat2.setData("꼬마", "옆집", 14);
cat1.print("잡종");
cat2.print();
cat3.print("뒷집", 0);
}
}
//출력
우리집: 로빈 10세 잡종
옆집: 꼬마 14세
뒷집: 고양이는 0마리입니다.
728x90
반응형
'프로그래머 > 코딩(C#)개념정리' 카테고리의 다른 글
C#_클래스_public과 private (6) | 2023.03.23 |
---|---|
C#_클래스_선택적 인수와 명명된 인수 (6) | 2023.03.21 |
C#_클래스_메소드의 호출_3 (2) | 2023.03.12 |
C#_클래스_메소드의 호출_2 (22) | 2023.03.06 |
C#_클래스_메소드의 호출_1 (22) | 2023.03.05 |