상속
기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 이다.
즉, 부모 클래스의 멤버(변수,메서드)를 자식 클래스에게 이관하는 것 이다.
그러면 "상속" 을 왜 사용하는가?
1. 개발이 잘된 클래스를 재사용하여 재사용성이 높아진다.
2. 코드의 중복이 줄어들며 개발 기간이 단축된다.
3. 코드를 공통적으로 작성하여 유지보수가 용이하다.
즉, 생산성과 유지보수에 좋기에 사용한다.
상속을 선언하기 위해서는 다음과 같이 클래스를 작성하면 된다.
class 자식클래스 extends 부모클래스 {
...
}
예제를 살펴보자
Parents.java
public class Parents {
String name;
public void setName(String name){
this.name = name;
}
}
Child.java
public class Child extends Parents {
public static void main(String[] args) {
Child childobject = new Child();
childobject.setName("AshShine");
System.out.println(childobject.name);
}
}
결과
AshShine
보다시피 Parents 클래스에 name과 setName 메서드를 정의하지 않았음에도 정상적으로 실행됬음을 알 수 있다.
자식 클래스가 부모 클래스의 멤버(변수, 메서드)를 상속 받았기 때문에 실행이 가능한 것이다.
자바의 상속은 몇 가지 특징을 가지고 있다.
1. 다중상속을 지원하지 않는다.
class Child extends A,B,C ...{...}
이렇게 작성하는 것이 불가능하다. 즉, 하나의 클래스는 여러개의 클래스로부터 상속을 받을 수 없다.
단일 상속이기 때문에 아래 예제와 같이 상속 할 수 있다.
class A{...}
class B extends A{...}
class C extends B{...}
class D extends C{...}
2. 하나의 부모 클래스는 여러개의 자식 클래스를 가질 수 있다.
즉, 자식 클래스 A, B, C 가 한 Parents 클래스를 각각 상속 할 수 있다.
class A extends Parents{...}
class B extends Parents{...}
class C extends Parents{...}
3. 자식 클래스는 상속 받은 부모 클래스로부터 모든 멤버를 사용할 수 있지만 부모클래스는 자식 클래스의 멤버를 사용할 수 없다.
'Language > Java' 카테고리의 다른 글
[Java] 익명 클래스, 익명 이너 클래스 (0) | 2022.04.03 |
---|---|
[Java] Interface(인터페이스) VS Abstract Class(추상 클래스) 차이점, 정리 (0) | 2022.04.03 |
[Java] 업캐스팅, 다운캐스팅 (0) | 2022.04.02 |
[Java] 메소드 오버라이딩 / 메소드 오버로딩 (0) | 2021.07.15 |
[Java] 클래스, 객체, 인스턴스, 메소드 란? (0) | 2021.07.14 |