Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 셰이더
- 렌더몽키
- 이득우언리얼
- 이득우
- premake5
- Unity
- 파이썬
- 언리얼
- c#
- IMGUI
- 배열문제
- 비주얼스튜디오
- C++
- 3차원배열
- 표창던지기
- 유니티
- 화살피하기
- 게임만들기
- swipe
- 공부
- rendermonkey
- 화살표 함수
- python
- 그림자 효과
- visualstudio2022
- 가변배열
- c++class
- 다중상속
- uidesign
- 화살표 메서드
Archives
- Today
- Total
신입 개발자 공부 과정
1월3~4일 추가로 공부한 것 본문
36.메서드 오버로딩
다양성을 구현하는 방법 중 하나로
동일한 이름을 가진 여러 메서드를 정의 하는 것
오버로딩 방법=-매개변수의 수 변경
public void Add(int a, int b)
{}
public void Add(int a, int b, int c)
{}
-다른 타입의 매개변수 사용
public void Add(int a, int b)
{}
public void Add(float a, int b)
{}
public void Add(float a, float b)
{}
-서로 다른 타입의 매개변수 순서 변경
public void Add(float a, int b)
{}
public void Add(int a, float b)
{}
**단, 반환 타입(void, int, float)이 다른 매서드에서의 오버로딩을 허용하지 않는다
생성자 오버로딩=
public class Hero
{
public Hero()
{}
public Hero(string name)
{}
public Hero(string name, int damage, int maxHP)
{}
}
Hero hero1 = new Hero();
Hero hero1 = new Hero("홍길동");
Hero hero1 = new Hero("임꺽정, 3, 10");
37-1.상속, protected
중요한 객체지향 프로그래밍 중 하나
다른 클래스에 정의된 동작을 재사용, 확장 및 수정하는 새 클래스를 만들 수 있다
기본 클래스(부모)=맴버가 상속되는 클래스
파생 클래스(자식)=해당 맴버를 상속하는 클래스
부모클래스의 메서드나 맴버변수도 사용 가능하다
class Marine : TerranUnit// 파생:기본
protected 접근제한자
protected 맴버는 해당 클래스 내에서 파생 클래스 인스턴스가 액세스할 수 있습니다.
즉, 파생클래스만 접근 가능
37-2. virtual, override, base
virtual 키워드는 기본 클래스에서 정의된 메서드를 파생 클래스에서 재정의하도록 허용하는 것
virtual 한정자는 static, abstract, private 한정자와 함께 사용할 수 없다
override한정자는 상속된 메서드의 구현을 확장하거나 수정하는데 필요
ex)테란 유닛 공격=유닛 별로 공격 방법이 다름
-TerranUnit
class TerranUnit
{
public virtual void Attack()
{
}
}
-Marine
class Marine : TerranUnit
{
public override void Attack()
{
Console.WriteLine("총으로 공격!");
}
}
-Firebat
class Firebat : TerranUnit
{
public override void Attack()
{
Console.WriteLine("화염방사기로 공격!");
}
}
base키워드는 파생 클래스 내에서 기본 클래스의 맴버에 엑세스하는 데 사용
class Firebat : TerranUnit
{
public override void Attack()
{
bas.Attack();
Console.WriteLine("화염방사기로 공격!");
}
}
37-3. 생성자 연결
'C# > 모르는 내용들 공부' 카테고리의 다른 글
c# 화살표 함수 => (0) | 2022.01.13 |
---|---|
c# 재귀함수 (0) | 2022.01.13 |
C# Callback ,Json 공부 (0) | 2022.01.05 |
1월1일~1월2일 C# 공부한 부분들 (0) | 2021.12.29 |
12/28 모르는 부분들 C# 구조체Struct, 배열Array (0) | 2021.12.29 |