성장일기
06/03 스마트팩토리 교육-오버라이딩 본문
○오버로딩과 오버라이딩
오버로딩 - void teest()
void test(int A)
이름은 같고 인자로 다름을 구분
오버라이딩 - void test(int A)
void test(int A)
부모와 자식클래스 둘다 동일하게
º메서드=메소드=함수=프로시저 등
<소스>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _20200602_006
{
class Mammal
{
public virtual void Move()
{
Console.WriteLine("이동한다");
}
}
class Lion : Mammal
{
public override void Move()
{
Console.WriteLine("네발로 걷는다");
}
}
class whale : Mammal
{
public void Move()
{
Console.WriteLine("수영한다");
}
}
class Human : Mammal
{
public void Move()
{
Console.WriteLine("두발로 걷는다.");
}
}
class Program
{
static void Main(string[] args)
{
Mammal aMammal = new Mammal();
aMammal.Move();
aMammal = new Lion();
aMammal.Move();
}
}
}
virtual을 지우면 에러! new밖에 쓸 수 없음
virtual : 객체타입에 맞추어 메소드 호출
public override void Move1()일 경우 에러발생
-> 부모이름과 같은 값을 로드하겠다는 뜻인데 Move 와 Move1은 동일하지 않기 때문에
( new는 상속받지 않는 새로운 메서드를 만들겠다는 뜻)
º배열 활용
변수를 만들때 한정 중괄호{}를 사용할 수 있다
○base를 이용한 메서드 재사용
○object 기본 메서드 확장
같은 내용 2번
위와 같은 결과를 얻을 수 있다
ToString은 int형을 자동적으로 텍스트형으로 바꿔줌
<소스>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _20200603_004
{
class Car
{
int iSpeed; // 속도
string sColor; // 색상
string sName; // 이름
string sVender; // 제조사
public override string ToString()
{
return "속 도 : " + iSpeed
+ "\n색 상 : " + sColor
+ "\n이 름 : " + sName
+ "\n제조사 : " + sVender;
}
public void Print()
{
Console.WriteLine(ToString());
//Console.WriteLine("속 도 : 100\n색 상 : 빨캉\n이 름 : 그냥죠\n제조사 : 현다이");
}
public Car(int iSpeed, string sColor, string sName, string sVender)
{
this.iSpeed = iSpeed;
this.sColor = sColor;
this.sName = sName;
this.sVender = sVender;
}
}
class Program
{
static void Main(string[] args)
{
Car aCar = new Car(100, "빨캉", "그냥죠", "현다이");
aCar.Print();
Console.WriteLine(aCar);
}
}
}
메소드에서는 인자검사가 중요
'프로그래밍언어 > C#' 카테고리의 다른 글
06/04 스마트팩토리 교육- (0) | 2020.06.04 |
---|---|
06/03 스마트팩토리 교육 - 오버로드 (0) | 2020.06.03 |
06/02 스마트팩토리 교육 - Object,Array,this,base (0) | 2020.06.02 |
06/01 스마트팩토리 교육 -생성자, 정보은닉, 프로퍼티,상속,is as 연산자 (0) | 2020.06.01 |
05/29 스마트팩토리 교육- 종료자, 정적멤버, 인스턴스 멤버, 정적 생성자 (0) | 2020.05.29 |