2011년 5월 22일 일요일

Chapter 2 객체 지향 기술의 이해 - 4

4. What Is Inheritance?
일반적으로 말하면, 객체들은 클래스들의 관계로 정의되어 진다. 어떤 객체의 부류를 알아내어 그 객체에 대한 더 많은 것을 알 수 있다. "penny-farthing"를 모른다 하더라도(penny-farth은 앞바퀴가큰 옛날 자전거) 그것이 자전거라고 한다면, 우리는 "penny-farthing"이 두개의 바퀴, 핸들과 페달이 있다는 것을 알 것이다.
객체 지향 시스템은 이 과정을 보다 더 이용하고 클래스들이 다른 클래스들의 관계에서 정의되어 지는 것을 허용한다. 예를 들어 산악 자전거, 경주용 자전거는 모두 자전거이다. 객체 지향의 전문용어로는 산악 자전거, 경주용 자전거를 자전거 클래스의 하위 클래스(subclass)라 한다. 또, 자전거 클래스는 산악 자전거, 경주용 자전거의 상위 클래스(super class)라 한다. 이 관계는 다음 그림에서 볼 수 있다.
*


각각의 하위 클래스는 상위 클래스로부터 상태를 상속 받는다. 산악 자전거, 경주용 자전거는 몇 가지 상태들이 공통적이다. 또, 각 하위 클래스는 상위 클래스로부터 메소드들을 상속 받는다.
그러나, 하위 클래스들은 그들의 상위 클래스에 의하여 상태와 행위가 제한되지 않는다. 하위 클래스는 상위 클래스로부터 상속 받은 변수들이나 메소드들을 추가할 수 있다.
하위 클래스는 또 상속 받은 메소드들을 재정의 할 수 있고 상속받은 메소드들에 대해 특별한 구현을 제공한다.
상속은 오직 한 단계일 필요는 없다. 상속 트리(tree), 또는 클래스 계층구조(hierarchy)는 필요한 만큼 확장 될 수 있다.
Object 클래스는 클래스 계층상 최상위이고, 각 클래스는 그것의 후손이다. Object 타입의 변수는 클래스의 인스턴스나 배열과 같은 어떤 객체에 대해서도 참조를 할 수 있다.
상속은 다음과 같은 이점들을 제공한다:
  • 하위 클래스는 상위 클래스에 의해 제공되는 공통적인 요소에 대한 토대로부터 특별한 행위를 제공한다. 상속을 통하여 프로그래머는 상위 클래스의 코드를 여러번 재사용할 수 있다.
  • 프로그래머는 일반적인 행위를 정의하는 추상 클래스라 불리는 상위 클래스로 구현할 수 있다. 추상의 상위 클래스는 행위들을 정의할 수 있고 부분적으로 구현할 수도 있다. 그러나 대부분의 경우는 정의되지 않거나 구현되어 있지 않다. 다른 프로그래머들이 특별한 하위 클래스를 자세하게 채우게 된다.

5. What Is an Interface?
사전적인 의미로 인터페이스는 장치, 방안, 서로 관련 없는 개체들이 상호 작용을 하는데 사용되는 시스템이다. 이 정의에 따라, 행위의 리모콘은 사람과 텔레비젼 사이의 인터페이스이며, 언어는 두 사람 사이의 인터페이스이다. 자바 프로그래밍 언어 내에서 인터페이스는 관련없는 객체들을 서로 상호작용을 하도록 이용되는 장치이다. 인터페이스는 아마 가장 규약(protocol)과 유사한 것이다.
우리는 어떤 클래스에 의해서건 어떤 클래스 계층구조에서 간에 구현되어 질 수 있는 행위의 규약을 정의하는데 인터페이스를 이용한다. 인터페이스는 다음과 같은 상황에 유용한다.
  • 클래스 관계에 대한 인위적인 강요 없이 관계없는 클래스들 사이의 유사성을 획득 하는 것
  • 하나 또는 그 이상의 클래스들의 구현이 기대되는 메소들을 선언
  • 객체에 대한 클래스의 노출 없이 객체의 프로그래밍 인터페이스를 노출하는 것

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...