C#/수업 내용
상속 클래스 (다운캐스팅 업캐스팅) + as연산자
Bueong_E
2023. 1. 5. 17:57
반응형
SMALL
기반 클래스
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
class TerrranUnit
{
protected int hp; //파생 클래스 에서만 접근이 가능 or public
//생성자
public TerrranUnit()
{
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
class Firebat : TerrranUnit
{
//생성자
public Firebat()
{
this.hp = 10;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
class App
{
//생성자
public App()
{
//업 캐스팅 (암시적 변환이 가능)
TerrranUnit unit = (TerrranUnit)new Firebat(); // new 뒤의 생성자가 호출되는것이니 착각하지 말것
//마치 정수 실수 변환 처럼
int a = (int)13.33f;
//다운 캐스팅
Firebat firebat = (Firebat)new TerrranUnit(); //테란유닛 클래스의 인스턴스가 생성되지 파이어벳클래스 인스턴스가 나오는건 아님
Console.WriteLine(firebat);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study04
{
class App
{
//생성자
public App()
{
Console.WriteLine("App생성자");
Firebat firebat = new Firebat();
TerrranUnit unit = firebat;
Firebat firebat1 = (Firebat)unit;
}
}
}
반응형
LIST