TIL

자바 - 상속

Big Iron 2023. 2. 22. 10:26
  • 자바에서 말하는 상속이란?

    두 개의 클래스를 부모와 자식으로 관계를 맺어주는 것이다.

    말만 들었을 때는 이해가 어려울 수 있다. 하지만 아래 코드를 보면 이해가 편할 것이다.

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이라는 참조변수를 이용해 객체를 만들고 호출하면 아래와 같이 실행된 모습을 볼 수 있다.


다른 클래스의 멤버를 사용하기 위해 각각의 객체를 생성하고 사용하는 방법도 있겠지만 조금 더 깔끔하고 간결한 코드를 위해 상속을 사용한다는 것을 알게되었다.

변수뿐만 아니라 메서드도 상속받아 사용할 수 있으므로 추후 많은 곳에서 상속을 사용할 것 같다.