[java] 상속을 이용한 다른 클래스의 동작 제어

자바에서 상속은 다른 클래스의 기능을 확장하고 재사용할 수 있도록 해줍니다. 상속을 통해 부모 클래스의 특징과 동작을 자식 클래스에게 물려줌으로써 코드의 재사용성을 높일 수 있습니다. 또한, 자식 클래스에서는 부모 클래스의 동작을 필요에 맞게 재정의(Overriding)하여 제어할 수 있습니다.

부모 클래스와 자식 클래스 생성

public class ParentClass {
    public void display() {
        System.out.println("부모 클래스의 display 메서드");
    }
}

public class ChildClass extends ParentClass {
    @Override
    public void display() {
        System.out.println("자식 클래스의 display 메서드");
    }
}

위의 예시 코드에서 ChildClassParentClass를 상속받았습니다. 이제 ChildClass의 인스턴스를 생성하고 메서드를 호출하면, display() 메서드는 ChildClass에 재정의된 내용으로 실행됩니다.

부모 클래스 메서드 호출

때로는 자식 클래스에서 부모 클래스의 메서드를 호출해야 할 때가 있습니다. 이를 위해 super 키워드를 사용하여 부모 클래스의 메서드를 명시적으로 호출할 수 있습니다.

public class ChildClass extends ParentClass {
    @Override
    public void display() {
        super.display(); // 부모 클래스의 display 메서드 호출
        // 추가적인 동작
    }
}

다형성을 통한 동작 제어

다형성(Polymorphism)을 이용하면 동일한 메서드 호출 코드가 실제로는 서로 다른 클래스의 메서드를 호출할 수 있습니다. 이는 런타임에 객체의 실제 타입에 따라 동작이 결정되기 때문입니다.

ParentClass obj1 = new ParentClass();
ParentClass obj2 = new ChildClass();

obj1.display(); // "부모 클래스의 display 메서드" 출력
obj2.display(); // "자식 클래스의 display 메서드" 출력

상속을 이용하면 다른 클래스의 동작을 효율적으로 제어할 수 있으며, 다형성을 통해 강력한 유연성을 얻을 수 있습니다.

참고 자료