[Java] : 오버라이딩과 오버로딩

dohyoungK·2024년 3월 4일
0

면접 스크립트

목록 보기
10/25
post-thumbnail

[Java] : 오버라이딩과 오버로딩


오버라이딩(Overriding)

부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 오버라이딩이라 한다. (오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야한다.)

class Person {
	void cry() {
		System.out.println("흑흑");
	}
}

class Child extends Person {
	@Override
	void cry() {
		System.out.println("잉잉");
	}
}

오버로딩(Overloading)

자바의 한 클래스 내에 동일한 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면 같은 이름을 사용해서 메소드를 정의할 수 있다.

class OverloadingMethods {
	public void print() {
		System.out.println("오버로딩1");
	}

	String print(Integer a) {
		System.out.println("오버로딩2");
		return a.toString();
	}

	void print(String a) {
		System.out.println("오버로딩3");
		System.out.println(a);
	}

	String print(Integer a, Integer b) {
		System.out.println("오버로딩4");
		return a.toString() + b.toString();
	}

}

오버로딩 vs 오버라이딩

구분오버라이딩오버로딩
접근 제어자부모 클래스의 메소드 접근 제어자보다 더 넓은 범위만 가능모든 접근 제어자 사용가능
메소드명동일해야 함동일해야 함
매개변수동일해야 함달라야 함
리턴형동일해야 함달라도 됨
적용범위상속 관계에서 적용같은 클래스 내에서 적용

0개의 댓글