메서드 오버라이딩

BuZZLightyear·2023년 2월 27일
0

정리

목록 보기
5/47

메서드 오버라이딩이란 ?

상위 클래스로 부터 상속 받은 메서드와 동일한 이름의 메서드 재정의

class Vehicle {
    void run() {
        System.out.println("Vehicle is running");
    }
}

class Bike extends Vehicle {
    void run() {
        System.out.println("Bike is running");
    }
}

class Car extends Vehicle {
    void run() {
        System.out.println("Car is running");
    }
}

class MotorBike extends Vehicle {
    void run() {
        System.out.println("MotorBike is running");
    }
}
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        Bike bike = new Bike();
        Car car = new Car();
        MotorBike motorbike = new MotorBike();

        vehicle.run();
        bike.run();
        car.run();
        motorbike.run();
    }
Vehicle is running
Bike is running
Car is running
MotorBike is running

메서드 오버라이딩은 상위 클래스에 정의된 메서드를 하위클래스에 맞게 변경하고자 할 때 사용

상위 클래스의 메서드 오버라이딩 조건

  1. 메서드의 선언부(메서드의 이름, 매개변수, 리턴타입)가 상위 클래스의 것과 완전히 일치해야한다.
  2. 접근 제어자의 범위가 상위 클래스의 메서드보다 같거나 넓어야 한다.
  3. 예외는 상위 클래스의 메서드보다 많이 선언 할 수 없다.
profile
버즈라이트이어

0개의 댓글