자바에서 말하는 상속이란?
두 개의 클래스를 부모와 자식으로 관계를 맺어주는 것이다.
말만 들었을 때는 이해가 어려울 수 있다. 하지만 아래 코드를 보면 이해가 편할 것이다.
class Point { // 부모 클래스 Point
int x = 5;
int y = 1;
}
class Point3D extends Point { // 자식 클래스Point3D가 부모 Point 클래스를 상속받음
int z = 3;
}
class PrintPoint {
public static void main (String[] args) {
Point p = new Point();
System.out.println(p.x + p.z + p.y);
}
}
먼저 위의 코드를 실행하기 위해 main 메서드에서 p라는 참조변수를 이용해 클래스 객체를 생성하고 호출할 수 있다.
하지만 이렇게 실행하면 위와 같은 오류가 발생한다.
참조변수 p로 받은 객체에 z값이 없다는 뜻으로 여기서 상속을 사용해 보겠다.
class Point { // 부모 클래스 Point
int x = 5;
int y = 1;
}
class Point3D extends Point { // 자식 클래스Point3D가 부모 Point 클래스를 상속받음
int z = 3;
}
class PrintPoint {
public static void main (String[] args) {
Point3D p3 = new Point3D();
System.out.println(p3.x + p3.z + p3.y);
}
}
자식클래스 extends 부모클래스 형식으로 상속을 지정할 수 있고
상속 받은 자식클래스를 p3이라는 참조변수를 이용해 객체를 만들고 호출하면 아래와 같이 실행된 모습을 볼 수 있다.
다른 클래스의 멤버를 사용하기 위해 각각의 객체를 생성하고 사용하는 방법도 있겠지만 조금 더 깔끔하고 간결한 코드를 위해 상속을 사용한다는 것을 알게되었다.
변수뿐만 아니라 메서드도 상속받아 사용할 수 있으므로 추후 많은 곳에서 상속을 사용할 것 같다.
'TIL' 카테고리의 다른 글
자바 - 약한 결합 및 약한 의존성 (0) | 2023.02.25 |
---|---|
자바 - 객체지향 프로그래밍의 4가지 특징 (캡슐화, 추상화, 상속, 다형성) (0) | 2023.02.23 |
자바 - 객체지향 (0) | 2023.02.21 |
Java - 조건문 그리고 반복문. (0) | 2023.02.14 |
Java - 변수 (0) | 2023.02.13 |