메서드 오버라이딩_java

2022. 1. 17. 18:57ksmart_Java/Java

728x90

메서드 오버라이딩이란 상속관계에 있는 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 같은 시그니쳐를 갖는 메서드로 다시 정의하는것

메서드 오버라이딩이란 상속받은 부모 클래스으이 메서드를 재정의하여 사용하는것을 의미한다.


오버라이딩의 조건

1. 오버라이딩이란 메서드의 동작만을 재정의하는 것으로, 메서드의 선언부는 기존 메서드와 완전히 같아야한다.

    메서드의 반환 타입은 부모 클래스의 반환 타입으로 타입 변환할 수 있는 타입이라면 변경 가능

2. 부모 클래스의 메서드보다 접근 제어자를 더 좁은 범위로 변경 불가능 

3. 부모 클래스의 메서드보다 더 큰 범위의 예외 선언 불가능


메서드 오버라이딩 예

부모 클래스인 Parent 클래스의 display() 메서드를 자식 클래스인 Child 클래스에서 오버라이딩하는 예제

class Parent {
	void display() {
		System.out.println("부모클래스의 display() 메서드입니다.");
	}
}

class Child extends Parent {
	void display() {
		System.out.println("자식 클래스의 display() 메서드입니다.");
	}
}

public class Inheritance05{
	public static void main(String args) {
		Parent pa = new Parent();
		pa.display();
		Child ch = new Child();
		ch.display();
		Parent pc = new Child();
		pc.display();
	}
}

실행결과

부모 클래스의 display() 메서드입니다.

자식 클래스의 display() 메서드입니다.

자식 클래스의 display() 메서드입니다.

 

728x90