자바

JAVA 자바 상속의 개념 , 자바 상속

알통몬_ 2017. 3. 12. 19:32
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

상속의 개념

http://blog.naver.com/rain483/220514481699

상속은 재사용 + 확장입니다.


객체 지향에서 상속은 분류도라고 할 수 있습니다.

객체 지향에서 상속은 상위클래스의 특성을 하위클래서에서 상속(특성상속)하고 거기에 더해

필요한 특성을 추가, 즉 확장하여 사용할 수 있다는 의미죠.


상속관계에서 반드시 만족해야할 문장이 있어요.

바로 하위클래스는 상위클래스다 입니다.

그럼 상속의 강력함을 보여주는 예제를 보겠습니다.

예제1)

package inheritance01;


public class 동물 {

String myClass;


동물() {

myClass = "동물";

}


void showMe() {

System.out.println(myClass);

}

}

예제1)

package inheritance01;


public class 포유류 extends 동물 {

포유류() {

myClass = "포유류";

}

}

예제1)

package inheritance01;


public class 조류 extends 동물 {

조류() {

myClass = "조류";

}

}

예제1)

package inheritance01;


public class 고래 extends 포유류 {

고래() {

myClass = "고래";

}

}

예제1)

package inheritance01;


public class 박쥐 extends 포유류 {

박쥐() {

myClass = "박쥐";

}

}

예제1)

package inheritance01;


public class 참새 extends 조류 {

참새() {

myClass = "참새";

}

}

예제1)

package inheritance01;


public class 펭귄 extends 조류 {

펭귄() {

myClass = "펭귄";

}

}

예제1)

package inheritance01;


public class Driver01 {

public static void main(String[] args) {

동물 animal = new 동물();

포유류 mammalia = new 포유류();

조류 bird = new 조류();

고래 whale = new 고래();

박쥐 bat = new 박쥐();

참새 sparrow = new 참새();

펭귄 penguin = new 펭귄();


animal.showMe();

mammalia.showMe();

bird.showMe();

whale.showMe();

bat.showMe();

sparrow.showMe();

penguin.showMe();

}

}

상속을 받아서 동물 클래스의 메서드를 하위 클래스들이 사용하죠?

이 것이 바로 상속의 강력함입니다.모든 하위 클래스에서 showMe() 메서드를 다시 작성하지 않고 상위 클래스의 showMe()메서드를 사용할 수 있죠.(재사용)

상속은 is a 관계를 만족해야 한다고 잘 못알고 계신 분들이 있는데요.

팽귄 is a 동물

팽귄은 한마리 동물이다. 맞는 것 같죠? 동물과 팽귄은 클래스죠? 근데 한 마리 동물은 클래스일까요?

아니죠 객체죠. 그럼 하위 클래스 is a 상위 클래스는 어떨까요?

하위 클래스는 하나의 상위 클래스이다??  하위 클래스는 분류/집단이에요. 상위 클래스도 분류/집단이죠. 하지만 하나의 상위 클래스는 객체입니다.


정확한 표현은 is a kind of 입니다.

마이크로소프트 개발자 사이트인 MSDN에서도 상속을 표현하는 is a 를 더 명확히 표현하면 is a kind of라고 명시하고 있죠.


상속에서는 아래 세가지는 꼭 기억하셔야해요.

-객체 지향의 상속은 상위 클래스의 특성을 재사용하는 것이다.

-객체 지향의 상속은 상위 클래스의 특성을 확장하는 것이다.

-객체 지향의 상속은 is a kind of 관계를 만족하는 것이다.

반응형