namespace practice
{
class Emotion
{
public void CurrentEmotion()
{
Console.WriteLine("현재의 기분이 어떤가요?");
}
}
class Happy : Emotion
{
public void emotion()
{
Console.WriteLine("행복합니다.");
}
}
class MainApp
{
static void Main()
{
Emotion test1 = new Happy();
Happy test2;
test2 = (Happy)test1;
test1.emotion();
test2.emotion();
}
}
}
저기서 test1.emotion()로 인해 컴파일 안되잖아?
곰곰히 생각하다가 파생클래스 형식에 기반 클래스 인스턴스 생성이 안돼는 이유가 궁금해져서
생각해봤는데 힙에 저장된 주솟값 길이를 다르게 읽는건가 싶어서 주소값으로 인해 안돼는거냐고
물어 봤는데
답변이 뭐이러냐
1. 객체지향부터 공부해라
- ㅅㅂ 객체지향 공부하다가 궁금해서 묻는거잖아
2. 악기를 상속받아서 기타를 만들어. 기타는 악기지? 그런데 악기가 기타냐?
프로그래머는 문서를 대충 읽는 버릇을 고쳐야 된다
- 아니 시바 안돼는건 알어. 근데 어떤 원리로 안돼는 건지 묻는데 이런 답변이 달리냐?
이답변 한 사람은 디버깅 하는데 버그 발생하는 조건은 아는데
왜 그러는지 이유를 몰라도 그냥 조건만 수정해버리고 넘어가는 프로그래머임?
test1에는 Happy의 인스턴스가 생성되고 주소값 안에 포함된 데이터는 Happy 의 내용 전체를 담고있을텐데 저기서 데이터 형식을 CurrentEmotion로하면 base클래서 데이터 형식만 쏙 빼서 읽는 원리가 궁금하다 그리고
두번째 답글쓴사람 저사람이야 말로 [문서를 대충 읽는 버릇을 고쳐야 된다]라고 말씀드리고싶은데요..