반응형
이번 포스팅에서는 자바(Java)에서 상속(inheritance)에 대하여 공부를 해보고자 한다.
상속이란
상속이란 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 말한다.
이러한 상속은 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나다.
상속은 일반적으로 무엇을 물려받는다는 의미인데, 객체 지향 프로그램에서도 같은 의미를 갖는다.
예를 들어 B클래스가 A클래스를 상속받으면 B 클래스는 A 클래스의 멤버 변수와 메서드를 사용할 수 있다.
객체 지향 프로그램은 유지보수하기 편하고 프로그램을 수정하거나 새로운 내용을 추가하는 것이 유연한데, 그 기반이 되는 기술이 상속이다.
클래스의 상속
B 클래스가 A 클래스를 상속받는다고 할 때 다음과 같은 그림으로 나타낼 수 있다.
- 클래스 간 상속을 표현할 때는 상속받는 클래스에서 상속하는 클래스로 화살표가 간다.
- 부모 클래스(parent class)를 '상위 클래스', 자식 클래스(child class)를 '하위 클래스'라고 부른다.
상속 관계에서는 상위 클래스가 하위 클래스보다 일반적인 개념이고, 하위 클래스는 상위 클래스보다 구체적인 클래스가 된다.
클래스 상속 문법
class B extends A{
}
- 자바에서 상속을 구현할 때는 extends 예약어를 사용한다.
- 위 코드는 'B 클래스가 A 클래스를 상속받는다'라고 말한다.
상위 클래스 변수를 사용하기 위한 protected 예약어
상위 클래스에서 private 변수를 선언하는 경우, 상위 클래스에 작성한 변수나 메서드 중 외부 클래스에서 사용할 수 있는 것은 없지만 protected 예약어를 사용하면 하위 클래스에서는 사용할 수 있다.
즉, 상속받은 하위 클래스에서는 public처럼 사용할 수 있다.
protected는 상속된 하위 클래스를 제외한 나머지 외부 클래스에서는 private와 동일한 역할을 한다.
반응형
'Back-End > Java' 카테고리의 다른 글
[Java] 메서드 오버라이딩(method overriding) (0) | 2023.02.06 |
---|---|
[Java] 상속에서 클래스 생성과 형 변환 (0) | 2023.02.05 |
[Java] 배열 응용 프로그램 (0) | 2023.02.05 |
[Java] ArrayList 클래스 (0) | 2023.02.04 |
[Java] 다차원 배열 (0) | 2023.02.04 |