본문 바로가기
프로그래머/코딩(C#)개념정리

C#_클래스_오버로드

by FourthWay 2023. 3. 21.
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
반응형