메서드 오버로딩?
다형성을 구현하는 방법중 하나
즉, 하나 이상의 형태를 취할 수 있는 능력
메서드 오버로딩은
동일한 이름을 가진 여러 메서드를 정의하는 것
메서드 오버로딩을 사용하는 때
1. 매개변수의 수 변경
2. 다른 타입의 매개변수 사용
3. 서로 다른 타입의 매개변수 순서 변경
생성자 오버로딩
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step36
{
internal class Program
{
static void Main(string[] args)
{
//Calculator calc = new Calculator();
//int result = calc.Add(1, 2);
//Console.WriteLine(result);
//result = calc.Add(1, 2, 3);
//Console.WriteLine(result);
//calc.Subtract(1.3f, 1.5f);
//calc.Subtract(5, 1.5f);
//calc.Subtract(10f, 5);
//calc.Multiple(1.5f, 2);
//calc.Multiple(2, 1.5f);
//생성자 오버로딩
Hero hong = new Hero();
Hero lim = new Hero("임꺽정");
Hero jang = new Hero("장길산", 3, 10);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step36
{
internal class Calculator
{
//클래스가 생성되면 기본 생성자를 만들자
public Calculator()
{
}
//메서드 오버로딩
public int Add(int a, int b)
{
int result = a + b;
return result;
}
//다른 매개변수의 수
public int Add(int a, int b, int c)
{
int result = a + b + c;
return result;
}
public int Subtract(int a, int b)
{
int result = a - b;
return result;
}
//다른 타입의 매개변수
public int Subtract(float a, float b)
{
int result = Convert.ToInt32(a - b);
return result;
}
public int Subtract(int a, float b)
{
int result = a - (int)b;
return result;
}
//서로다른 매개변수의 순서 변경
public int Multiple(int a, float b)
{
int result = a * (int)b;
return result;
}
public int Multiple(float a, int b)
{
int result = (int)a * b;
return result;
}
//반환타입이 다른것은 오버로딩 불가능
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step36
{
internal class Hero
{
//생성자
public Hero()
{
Console.WriteLine("매개변수가 없는 기본 생성자");
}
//생성자 오버로딩
public Hero(string anme)
{
Console.WriteLine("매개변수가 1개 있는 생성자");
}
//생성자 오버로딩
public Hero(string name, int damage, int maxHp)
{
Console.WriteLine("매개변수가 3개 있는 생성자");
}
}
}
'낙서장 > C#' 카테고리의 다른 글
virtual ,override, base (2) | 2024.03.08 |
---|---|
상속과 다형성 (1) | 2024.03.08 |
흐름 제어 (1) | 2024.02.26 |
데이터를 가공하는 연산자 (0) | 2024.02.25 |
데이터를 담는 변수와 상수 (0) | 2024.02.22 |