객체지향 프로그래밍의 4가지 요소(1) 상속
Java는 객체 지향 프로그래밍(OOP) 언어로, OOP의 4가지 주요 요소인 추상화, 캡슐화, 다형성, 상속성을 중심으로 설계되었다. 이 글에서는 그 중에서도 **상속성(Inheritance)**에 대해 자세히 설명한다
상속(Inheritance) 이란?
상속(Inheritance)이란 기존에 존재하던 클래스의 멤버 변수와 메서드를 그대로 물려받아, 멤버 변수 및 메서드를 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다
상속성의 주요 특징
- 재사용성: 기존 클래스의 코드를 재사용함으로써 새로운 클래스를 작성하는 데 드는 시간을 절약할 수 있다.
- 계층 구조: 클래스 간의 계층 구조를 통해 시스템을 보다 체계적으로 설계할 수 있다.
- 유지보수성: 공통된 기능을 부모 클래스에 두고, 변경이 필요할 경우 한 곳에서 수정하면 되므로 유지보수가 용이하다.
상속성 구현 방법
extends 를 간단하게 사용해 부모 클래스를 지정하면 된다.
public class Parent {
public void display() {
System.out.println("Parent class display method");
}
}
public class Child extends Parent {
public void show() {
System.out.println("Child class show method");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.display(); // 부모 클래스의 메서드 호출
child.show(); // 자식 클래스의 메서드 호출
}
}
위의 예제에서 Child 클래스는 Parent 클래스를 상속받아 display() 메서드를 사용할 수 있다. 또한, Child 클래스만의 메서드 show()를 추가로 정의할 수 있다.
메서드 오버라이딩(Method Overriding)
상속성에서 중요한 개념 중 하나는 메서드 오버라이딩(Method Overriding)**이다. 자식 클래스에서 부모 클래스의 메서드를 재정의하여 사용할 수 있다.
상속성 제한
- 다중 상속 금지: Java는 클래스의 다중 상속을 허용하지 않는다. 한 클래스는 오직 하나의 부모 클래스만 가질 수 있다. 이는 다이아몬드 문제와 같은 복잡성을 피하기 위함이다.
- final 키워드: 클래스나 메서드에 final 키워드를 사용하면, 해당 클래스는 상속될 수 없고, 해당 메서드는 오버라이딩될 수 없다.
상속 관련 추가 내용
1) super
super 키워드는 자식 클래스에서 부모 클래스를 참조할 때 사용된다. 주로 부모 클래스의 메서드나 생성자를 호출할 때 사용된다. 자세한 내용은 아래 내용에서 정리했다.
https://for-habit.tistory.com/82
Java의 주요 키워드: this, static, super
Java는 객체 지향 프로그래밍 언어로, 다양한 키워드를 통해 코드를 구조화하고 관리한다. 이 글에서는 그동안 헷갈렸던 this, this(), static, super, super() 키워드에 대해 예시를 통해 정리해보겠습니
for-habit.tistory.com
2) 메소드 오버라이딩
자식 클래스에서 부모 클래스의 메서드를 재정의하여 사용할 수 있다 자세한 내용은 아래 내용에서 정리했다.
https://for-habit.tistory.com/84
Java의 메소드 오버로딩과 메소드 오버라이딩
Java에서 메소드 오버로딩과 메소드 오버라이딩은 다형성을 구현하는 중요한 개념으로 이 글에서는 메소드 오버로딩과 메소드 오버라이딩의 차이점과 사용법을 알아보자. 메소드 오버로딩(Met
for-habit.tistory.com
### 자식 클래스는 부모 클래스의 멤버 변수를 상속받긴 하지만 상속받아도 접근 제어는 유지된다.