[Java] 상속(Inheritance)
자바에서 상속은 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 중요한 문법 요소입니다.
상속을 통해 코드의 재사용성을 높이고, 개발 시간을 단축할 수 있습니다.
상속의 기본 개념부터 활용 방법까지, 자세히 알아보겠습니다!
상속의 기본 개념
상속이란 : 부모 클래스(상위 클래스)의 멤버(필드, 메소드 등)를 자식 클래스(하위 클래스)가 물려받아 사용할 수 있게 하는 것입니다.
상속의 목적 : 이미 만들어진 클래스를 재사용하여 새로운 클래스를 만들기 위함입니다. 이를 통해 코드의 중복을 줄이고, 효율적인 개발이 가능합니다.
상속에서의 접근 제한
private 멤버 : 부모 클래스의 private 접근 제한을 갖는 필드 및 메소드는 자식 클래스에서 직접 접근할 수 없습니다.
default 접근 제한 : 부모와 자식 클래스가 서로 다른 패키지에 있을 경우, default 접근 제한을 갖는 필드 및 메소드도 자식 클래스에서 직접 접근할 수 없습니다.
상속을 통해 자바에서 보다 효율적이고 체계적인 프로그래밍이 가능해집니다.
상속 예제
class Parent {
String name;
public void printName() {
System.out.println("Name: " + name);
}
}
class Child extends Parent {
int age;
public void printAge() {
System.out.println("Age: " + age);
}
}
이 예제에서 Child 클래스는 Parent 클래스로부터 name 필드와 printName() 메소드를 상속받습니다.
따라서, Child 클래스는 자신의 age 필드와 printAge() 메소드 뿐만 아니라, 상속받은 name 필드와 printName() 메소드도 사용할 수 있습니다.
상속을 활용한 메소드 오버라이딩
class Parent {
void show() {
System.out.println("Parent Class");
}
}
class Child extends Parent {
// Parent 클래스의 show() 메소드 오버라이딩
void show() {
System.out.println("Child Class");
}
}
public class Test {
public static void main(String[] args) {
Parent obj1 = new Parent();
obj1.show();
Parent obj2 = new Child();
obj2.show();
}
}
예제에서는 Child 클래스가 Parent 클래스로부터 상속받은 show() 메소드를 오버라이딩하여,
같은 메소드 이름으로 다른 기능을 구현하고 있습니다.
이를 통해 다형성의 개념도 함께 이해할 수 있습니다.
상속은 자바 객체 지향 프로그래밍에서 매우 중요한 개념입니다.
코드의 재사용성을 높이고, 유지 보수를 용이하게 하는 상속의 개념과 예제를 통해 실제로 어떻게 활용되는지 이해해 보았습니다.