Programming/Java

Java - 상속(자식클래스, 부모클래스의 관계)

경원구 2015. 12. 6. 23:26

<상속>


상속은 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 왜하는 것일까? 재사용성을 높이고, 코드의 중복성을 제거하여 생산성과 유지보수에 향상되기 때문이다.
상속은 예를 들어 새로 작성하려는 클래스의 이름이 Child라 하자, 기존에 있는 클래스의 이름을 Parent라 하자. 이때 문법은 extends를 사용하여...
class Child extends Parent {
// 내용
}
이렇게 하면 된다. 이렇게 되면 Parent의 메소드나, 인스턴스 변수를 Child 클래스가 사용할 수 있고, 오버라이딩을 하여 재사용 할 수도 있다.
하지만, 생성자와 초기화 블럭은 상속되지 않고, 멤버만 상속된다.
상속 해주는 클래스를 부모클래스, 상위클래스 라고 부르고, 상속 받는 클래스를 자손 클래스, 하위 클래스라고 한다. 
 
<실습>




위의 실습을 해석해보면, Super클래스가 부모 클래스이고, Sub가 자손클래스이다. 이렇게 코드를 짜면 자식 클래스의 객체를 생성하면 그 객체의 인스턴스 변수들 int b, c, 메소드 write(), print1(), print2()를 사용할 뿐만 아니라 부모 클래스의 인스턴스 변수들 int a, b, 메소드 write()를 사용할 수 있다.
어라? 부모클래스와 자손 클래스와 같은 이름을 가진 변수가 있다. (메소드는 오버라이딩 해서 재정의하여 사용 가능기 때문에 전혀 문제가 되지 않는다.)
그렇다면 이럴때 자손 클래스의 객체를 생성했을 때 위에서 겹치는 변수는 b이다. b의 변수는 누구것을 사용할 것인가? 당연히 무조건 자손 클래스의 b를 사용한다. (단, super로 난 부모클래스의 b를 사용하겠어요 라고 지정해 주지 않는 이상 말이다)

 

-결과-



<실습>



-결과-


LIST