자바(Java)/JAVA 2SE

상속(Inheritance) 이란?

본클라쓰 2010. 11. 29. 15:56


 상속이란 클래스에 새로운 기능을 추가하거나 가지고 있는 기능에 수정을 가하는 방법을 제공한다. 미리 작성해 놓은 클래스에 기본 성격은 같지만 처리 방법이나 데이터의 일부가 변경될 경우 객체 지향은 상속을 통하여 재정의하여 사용할 수 있다. 즉, 미리 작성해 놓은 클래스와 비슷하지만 속성이나 메소드가 약간 다른 객체가 필요할 때 사용하는 방법으로 기존의 클래스로부터 모든 속성과 메소드를 상속받고, 필요한 속성과 메소드를 추가하여 새로운 클래스를 작성할 수 있다.


 상속은 각각의 클래스 간에 연관성을 가지며 계층 구조를 가지게 한다. 즉, 클래스간 부모 자식 관계를 가지게 할 수 있다. 이런 계층 구조는 상위 계층으로 갈수록 공통점을 일반화되고 간단해 지고, 하위 계층으로 갈수록 특수화되고 개별화 된다.

 

 클래스의 상속은 소프트웨어 설계를 간단하게 할 수 있는 이점을 제공한다. 즉, 기존의 클래스로부터 모든 요소를 상속받고 새로운 클래스에서 추가되는 자료구조(새로운속성)과 메소드만 지정하여 사용하며 이런 상속의 개념은 코드를 간결하게 하고 코드의 재 사용성(reuseing)을 높이는 요인이다.

 

 

상속되는 클래스(부모 클래스)

class 강아지 {

 

    눈, 발;

 

    주인보기() { 눈은 주인을 향한다; }
    주인한테가기() { 발을 움직여 주인한테 간다; }


}


상속받는 클래스(자식 클래스)

class 사냥개 extends 강아지 {


    입;    // 새로운 속성을 정의

 

 

    사냥감을물기() { 눈으로 사냥감을 찾아 발을 움직여 사냥감에게 간 후 입으로 꽝 문다; }


}

 

 이런 방법을 통하여 사냥개 클래스는 간단하게 정의 될 수 있다. 기존에 있는 속성과 메소드를 그대로 사용하는 재 사용성이 상속을 통해 향상될 수 있다.

 

'자바(Java) > JAVA 2SE' 카테고리의 다른 글

다형성(Polymorphism)이란?  (0) 2010.11.29
캡슐화(Encapsulation)란?  (0) 2010.11.29
클래스(Class)란?  (0) 2010.11.29
객체지향 프로그래밍(Object-Oriented Programming) 언어의 특징  (0) 2010.11.29
JAVA API 기술문서  (0) 2010.11.29