JAVA Programming/JAVA 개념 정리

JAVA 클래스 상속

psy_er 2021. 11. 10. 00:09
728x90

JAVA 클래스 상속

 

클래스 상속 관계

 

자바 프로그래밍에서 클래스를 상속하게 된 배경은 비슷한 동작을 하는 서로 다른 객체들을 위해 포괄적인 속성과 행위를 갖도록 구현하기 위해서이다. 비슷한 내용의 클래스가 반복되면 비효율적이기 때문에 상속을 통해 비슷한 행위에 대해 서로 다른 인터페이스를 가질 수 있다. 상속관계는 특정 클래스가 가지는 일부 속성과 행위를 다른 클래스에게 제공하기 위해 맺는 관계이다. 기존 클래스의 멤버를 그대로 이용하면서 새로운 멤버를 추가할 수 있고, 기존 클래스의 멤버를 수정하여 사용하는 것도 가능하다.

 

상속의 이점

 

코드를 재사용하여 유지보수가 용의 하고 비슷한 코드를 다시 사용할 수 있다. 그리고 연관된 일련의 클래스에 대한 규약을 정의해 비슷한 유형을 묶어 클래스 객체 간의 동작을 통일시킬 수 있다. 상속은 IS-A 관계 즉, "~중의 하나"의 관계가 성립될 때 상속을 쓰기에 적절하다.

 

 

728x90

 

JAVA 상속의 특징

 

JAVA의 모든 클래스는 Object 클래스로부터 파생된다. JAVA에서는 단일 상속만 제공하고 다중 상속이 허용되는 interface를 제공함으로써 보완시킨다. 부모의 private 멤버도 상속은 가능하나 직접 참조는 불가능하다. private 멤버는 금고 같은 것이다. 상위 클래스에서 제공하는 access 메서드를 이용해 접근 가능하다. 대부분 하위 클래스의 생성자 첫 줄에서 상위 클래스의 생성자를 명시적으로 호출하여 사용한다.

 

 

상속

 

super 클래스 = parent 클래스 = base 클래스

자신의 멤버들을 상속해 주는 클래스이다.

 

sub 클래스 = child 클래스 = derived 클래스

super 클래스로부터 멤버들을 상속받는 클래스이다.

 

class UnivStudent extends Person {
    // 새로운 멤버 추가
}

sub 클래스의 객체는 super 클래스에서 상속받은 private 멤버를 제외한 멤버들과 sub 클래스에 추가된 멤버들 모두 자신의 멤버처럼 사용할 수 있다. private 멤버에 접근하려면 access 메서드를 이용해야 한다. 상속받은 멤버 중 sub 클래스 객체에 더욱 맞게 재정의 할 수 있다. 이때 재정의된 super 클래스 멤버는 은폐된다.

728x90