Return to Video

21-13 Polymorphism

  • 0:00 - 0:03
    Sara가 인터페이스에 대한 예시를 많이 보여줬습니다. 그리고 여러분이
  • 0:03 - 0:07
    인터페이스에 조금 익숙해졌으면 하는 바램입니다. 인터페이스는 자연적이지만,
  • 0:07 - 0:11
    인터페이스에 대해서 생각을 해보면, 무언가 이상하게 작동합니다. 우리의
  • 0:11 - 0:17
    Suburban Scene에서 Drawable에 대한 배열 리스트가 있었습니다. House,
  • 0:17 - 0:21
    cars, dogs 기타 등등. 그 중 하나를 갖고 있고, Drawable 자료형을 가진
  • 0:21 - 0:25
    변수에 저장했습니다. 물론, 거기에 draw 메소드를 호출했습니다. 작동을 해야
  • 0:25 - 0:26
    합니다.
  • 0:26 - 0:31
    왜냐하면 d는 Drawable 자료형을 갖고 있고, Drawable은 draw 메소드를
  • 0:31 - 0:36
    갖고 있기 때문입니다. d는 뭘까요? 이는 객체의 참조를 저장하고 있는 변수입니다.
  • 0:36 - 0:41
    어떠한 클래스의 객체를 참조하고 있을까요? 여러분은 Drawable 클래스의 객체라고
  • 0:41 - 0:46
    생각할 수 있지만, Drawable 클래스는 없습니다. Drawable은 인터페이스입니다. 그래서
  • 0:46 - 0:52
    안 됩니다. 그러고 보니 이 객체가 어떤 클래스를 참조하는지 알 수 없습니다.
  • 0:52 - 0:57
    이에 대해서 한 가지만 알고 있습니다. draw 메소드를 가지고 있는 클래스가
  • 0:57 - 1:03
    가지고 있는 객체입니다. 자세히 보면, 배열 리스트의 다양한 요소들을 접근하면,
  • 1:03 - 1:09
    이 줄의 코드가 여러 메소드들을 호출합니다. House, Dog, 다른 클래스들의
  • 1:09 - 1:12
    draw 메소드를 호출합니다. 전혀 예상하기 힘듭니다. 이는 또한
  • 1:12 - 1:19
    Drawable 인터페이스를 선언합니다. 이 변수는 다형 변수라고
  • 1:19 - 1:24
    부릅니다. 다형이라는 뜻은 다른 모양이라는 뜻을 가지고 있습니다.
  • 1:24 - 1:29
    Scene에서는 굉장히 적합한 이름입니다. 왜냐하면 draw 메소드는
  • 1:29 - 1:34
    클래스에 선언된 인터페이스에 따라 전혀 다른 모양을 출력합니다. 하지만
  • 1:34 - 1:38
    다형 변수는 보통 자바에서 메소드를 호출할 때 쓰이지만 그 메소드가
  • 1:38 - 1:42
    어떠한 형태에 있는지에 따라 다른 것을 호출하게 됩니다.
  • 1:42 - 1:50
    이제, 왜 다형 변수가 중요한가? 이를 이용해서 더 확장적인
  • 1:50 - 1:54
    시스템을 만들 수 있게 되고 프로그램의 전체적인 논리를 해치지
  • 1:54 - 2:00
    않고 새로운 자료형을 만들 수 있습니다. Suburban Scene에
  • 2:00 - 2:07
    새로운 자료형을 만들어 보길 바랍니다. 간단하게 Ball 클래스로
  • 2:07 - 2:12
    합시다. 이를 할 때, 프로그램을 얼마나 적게 바꿔야 하는지에
  • 2:12 - 2:13
    집중을 하세요.
Title:
21-13 Polymorphism
Description:

more » « less
Video Language:
English
Team:
Udacity
Project:
cs046: Intro to Programming
Duration:
02:15
Robin Rheem edited Korean subtitles for 21-13 Polymorphism
Robin Rheem edited Korean subtitles for 21-13 Polymorphism

Korean subtitles

Revisions Compare revisions