7강 class의 p228쪽 <기반클래스와 파생클래스 사이의 형식변환 그리고 is 와 as> 부분 하다가 잘모르겠어서요
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Inheritance
{
class Mammal
{
public void Nurse()
{
Console.WriteLine("Nurse()");
}
}
class Dog : Mammal
{
public void Bark()
{
Console.WriteLine("Bark()");
}
}
class Program
{
static void Main(string[] args)
{
Mammal mammal = new Mammal();
mammal.Nurse();
mammal = new dog(); ??
mammal.Nurse();
Dog dog= (Dog)mammal; ??
dog.Nurse();
dog.Bark();
}
}
}
결과물
Nurse()
Nurse()
Nurse()
Bark()
1. mammal = new dog() 란건 Mammal mammal = new Dog() 란 말인가요?
이 부분이 잘이해가 가지 않아요 Dog가 Mammal을 파생클래스이긴한데
mammal 이라는 객체를 Mammal 이라는 클래스 틀을 받아 생성하고 다시 Dog를 받아서 재생성했다?
근데 mammal.Bark(); 로 바로 밑에 메쏘드 실행하니까 이건 또 에러가 나더라고요
이 구문이 하는게 대체 뭐죠?
2. Dog dog = (Dog) mammal ??? 이 대체 뭔가요?
지금까지 책잘보다가 여기서 턱 막히더니 이해가 하나도 안가요..ㅠ