블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total659,138
Today21
Yesterday31
상속의 방법은 부모의 능력을 자식들에게 전가해줄 수 있는 매우 좋은 방법중의 하나이다. 하지만 단 한가지 아쉬운점이 있다면, 단 하나의 클래스에서만 상속이 가능하다는 것이다. 아빠의 능력을 받게 된다면, 엄마의 모습을 갖을 수는 없는 것이다...



다중상속.
분명 상속은 단 하나의 클래스에서만 이루어지는데... 다중상속이란 말이 나오는 까닭은?? 단 하나의 클래스를 상속하는 것만으로는 자바의 무한한 확장성을 무시하는 처사밖에 되지 않는다. 그래서 약간은 편법적인 방법으로 하나 이상의 클래스에서 상속이 이루어지게끔 만들어 주고 있다. 대신에, 불법적인 방법을 사용하는 만큼 조금은 더 제약이 다른다는 사실을 명심해야 한다.


인터페이스.
다중 상속을 하기 위해서는 우선 가장 기본이 되는 골격을 상속받은 후, 필요한 맴버 필드나 메소드를 가지고 있는 클래스의 형태를 추가하는 형태를 갖게 된다. 하지만, 이것은 상속이 아닌, 인터페이스라는 형태로 제공된다. 이 인터페이스는 일반적인 클래스와는 다르게 모든것에 추상 메소드로 이루어져 있다. 모든 메소드가 추상 메소드로 구현되어 있다는 것은 이것을 상속받는 클래스들은 인터페이스 클래스에 속해있는 모든 메소드에 대해서 구현을 한 후에 사용을 할 수 있다는 것이다. 만일 동물이라는 클래스를 상속받은 고양이라는 클래스가 있다고 하자. 이 고양이라는 클래스는 날카로운 이빨, 줄무늬 라는 클래스들은 추가적으로 상속받으면서 호랑이의 모습을 갖게 된다. 날카로운 이빨 클래스에 속해 있는 빠른 움직임, 물어뜯기의 메소드들은 필수적으로 구현을 해야지만 가능하다는 사실이다.


인터페이스 다중 상속의 방법.
동물을 상속받는 고양이의 다중 상속은 다음과 같이 표현할 수 있다.

class 고양이 extends 동물 implements 날카로운 이빨, 줄무늬 {
    ... ...
    public void 빠른 움직임() {}
    public void 물어뜯기() {}
}

다중 상속을 위해서는 아무런 내용이 없더라도, 그것을 꼭 구현해 주어야 하는 번거로움이 있다. 하지만, 이 번거로움이 있을지라도, 충분히 다중상속의 확장성과, 가능성은 개발자로 하여금 꼭 필요한 기능임을 인식하게 만들어준다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함