public class AAA

{

int a;

}

public class B: AAA

{

ATypeย aType;

ย  ย  public void Init(AType type)

ย  ย  {

ย  ย  ย  ย ย aType= type;

ย  ย  }

}


public class C:ย AAA

{

BType bTypeย 

ย  ย  public void Init(BTypeย type)

ย  ย  {

ย  ย  ย  ย ย bTypeย = type;

ย  ย  }

}



์ด๋Ÿฐ ์ฝ”๋“œ์ธ๋ฐ


AAA a = new B();ย 

AAA b =ย new C();


์ด๋ ‡๊ฒŒํ•˜๊ณ 


a.Init(AType .A);

b.Init(BType .A);


์ด๋ ‡๊ฒŒ ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์€๋ฐ ์ด๊ฑฐ ์™œ ์ ‘๊ทผ์ด ์•ˆ๋˜๋Š”๊ฑฐ์ž„?


๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ enumํƒ€์ž…์ด ๋‹ค๋ฅธ๊ฑธ๋กœ Initํ•˜๊ณ  ์‹ถ์€๋ฐ ์ผ์ผ€ํ•˜๋Š”๊ฑฐ ๋งž๋Š”๊ฑฐ์•ผ?