게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
파생클래스 개념이 잘이해가지 않아요
게시물ID : programmer_12764짧은주소 복사하기
작성자 : halohalox3
추천 : 0
조회수 : 402회
댓글수 : 8개
등록시간 : 2015/08/17 00:41:59
옵션
  • 창작글
  • 베스트금지
  • 본인삭제금지
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 ??? 이 대체 뭔가요?

지금까지 책잘보다가 여기서 턱 막히더니 이해가 하나도 안가요..ㅠ



전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호