국비지원/JAVA

오버라이딩(Overriding) 개념 정리

모로노이 2024. 6. 22. 15:33
#오버라이딩(Method Overriding)
    1. 상위 클래스로부터 상속 받은 메서드와 같은 이름의 메서드를 재정의 하는것.
    2. 상위 클래스의 메서드와 같은 이름,매개변수,반환타입 으로 정의한다.
    3. 접근 제어자의 범위는 상위 클래스의 메서드보다 같거나 넓어야 한다.
    4. 예외처리는 상위 클래스보다 많이 선언 할 수 없다.
   class Mouse {
    // 마우스를 클릭하는 기본 메서드
    public void click() {
        System.out.println("마우스 클릭됨");
    }
    
    // 마우스를 더블 클릭하는 메서드
        public void doubleClick() {
            System.out.println("마우스 더블 클릭됨");
        }
    }

    class GamingMouse extends Mouse {
        // 기본 클릭 메서드를 오버라이딩
        @Override
        public void click() {
            System.out.println("게이밍 마우스 정밀 클릭됨");
        }

        // 더블 클릭 메서드를 오버라이딩
        @Override
        public void doubleClick() {
            System.out.println("게이밍 마우스 빠르게 더블 클릭됨");
        }
    }

    public class Main {
        public static void main(String[] args) {
            Mouse regularMouse = new Mouse();
            Mouse gamingMouse = new GamingMouse();

            regularMouse.click(); // 일반 마우스의 클릭 메서드 호출
            regularMouse.doubleClick(); // 일반 마우스의 더블 클릭 메서드 호출

            gamingMouse.click(); // 게이밍 마우스의 오버라이딩된 클릭 메서드 호출
            gamingMouse.doubleClick(); // 게이밍 마우스의 오버라이딩된 더블 클릭 메서드 호출
        }
    }