상속이란 무엇인가? What Is Inheritance?
서로 다른 종류의 객체들은 어느 정도 서로 공통점을 갖고 있는 경우가 많습니다.
예를 들어 산악 자전거, 도로 자전거 및 탠덤 자전거는 모두 자전거의 특성(현재 속도, 현재 페달 종지, 현재 기어)를 공유합니다.
그런데 이들 각각의 자전거는 각자를 다르게 만드는 추가 기능을 정의합니다:
탠덤 자전거는 좌석 2개와 2세트의 핸들을 갖고 있고;
도로 자전거는 드롭 핸들을 갖고 있고;
일부 산악 자전거는 낮은 기어비를 주는, 추가 체인 링을 갖고 있습니다.
Different kinds of objects often have a certain amount in common with each other. Mountain bikes, road bikes, and tandem bikes, for example, all share the characteristics of bicycles (current speed, current pedal cadence, current gear). Yet each also defines additional features that make them different: tandem bicycles have two seats and two sets of handlebars; road bikes have drop handlebars; some mountain bikes have an additional chain ring, giving them a lower gear ratio.
객체 지향 프로그래밍에서, 클래스는 다른 클래스에서 일반적으로 사용되는 상태와 동작을 상속할 수 있습니다.
이 예제에서,
Bicycle은 MountainBike
, RoadBike,
TandemBike
의 수퍼클래스(부모클래스)가 됩니다. 자바 프로그래밍 언어에서, 개별 클래스는 1개의 수퍼클래스를 직접 가질 수 있으며, 각 수퍼클래스는 하위클래스(subclasses)를 무제한으로 가질 수 있습니다:
Object-oriented programming allows classes to inherit commonly used state and behavior from other classes. In this example, Bicycle
now becomes the superclass of MountainBike
, RoadBike
, and TandemBike
. In the Java programming language, each class is allowed to have one direct superclass, and each superclass has the potential for an unlimited number of subclasses:
클래스 bicycle의 계층도 A hierarchy of bicycle classes.
하위클래스를 만드는 신택스는 간단합니다. 클래스 선언 앞부분에서, 키워드 extends를 사용하고 그 뒤에 상속 받을 클래스의 이름을 위치시킵니다:
The syntax for creating a subclass is simple. At the beginning of your class declaration, use the extends
keyword, followed by the name of the class to inherit from:
class MountainBike extends Bicycle {
// mountain bike를 정의하는 새로운 필드와 메소드
}
상속을 통하여 Bicycle(자전거)의 모든 필드와 메소드와 동일한 모든 필드와 메소드가 MountainBike(산악자전거)에게 제공되며, 동시에 코드는 산악자전거를 독특하게 만드는 기능에만 초점을 맞출 수 있습니다.
이렇게 하위클래스를 쉽게 읽을 수 있는 코드를 만듭니다.
하지만 상속 받은 코드는 각각의 하위클래스의 소스 파일에 표시되지 않기 때문에 각각의 수퍼클래스가 정의하는 상태와 동작을 적절하게 문서화하도록 주의해야 합니다.
This gives MountainBike
all the same fields and methods as Bicycle
, yet allows its code to focus exclusively on the features that make it unique. This makes code for your subclasses easy to read. However, you must take care to properly document the state and behavior that each superclass defines, since that code will not appear in the source file of each subclass.
'Java 배우기' 카테고리의 다른 글
What Is a Package? 패키지란? (0) | 2016.01.05 |
---|---|
What Is an Interface? 인터페이스란? (0) | 2016.01.05 |
What Is a Class? 클래스란 무엇인가? (0) | 2016.01.05 |
What Is an Object? 객체란 무엇인가? (0) | 2016.01.05 |
Lesson: Object-Oriented Programming Concepts 단원: 객체-지향 프로그래밍 (0) | 2016.01.05 |
댓글