오버로딩(Overloading)과 오버라이딩(Overriding)

JeeHyeok Lee·2023년 1월 10일
0

자바에선 다형성을 지원하기 위해 메서드 오버로딩과 오버라이딩을 지원한다.

오버로딩이란?

동일한 이름의 메서드가 매개변수의 타입과 갯수가 다른 형태로 존재하는 것을 말한다.

오버로딩은 메서드 오버로딩과 생성자 오버로딩 두가지가 존재하는데 메서드와 생성자라는 점만 제외하면 큰 차이는 없다.

오버로딩의 장점

같은 기능을 하는 메서드를 같은 이름의 메서드로 사용할 수 있다.

콘솔창에 출력을 할 때 사용하는 print 메서드의 경우에도 다양한 타입의 변수를 매개변수로 넘겨 사용하게 되는데 이와 같은 경우 매번 다른 이름의 메서드를 호출할 필요 없이 같은 이름의 메서드를 통해 다양한 타입의 매개변수를 사용할 수 있게 된다.

오버라이딩이란?

부모 클래스의 메서드를 상속받아 자식 클래스에서 재정의하여 사용하는 것을 말한다.

부모 클래스가 가지고 있는 메서드는 자식 클래스에 상속되어서 사용할 수 있게 되는데 해당 메서드를 재정의하여 사용하는 것이 오버라이딩이다. 오버라이딩의 경우 매개변수의 타입 개수, 리턴 타입 등이 모두 일치한다.

(static, private 메서드의 경우 상속되지 않기 때문에 오버라이딩도 불가능합니다.)

오버라이딩의 장점

오버로딩과 비슷하게 하나의 메서드를 효율적으로 사용할 수 있게 된다.

0개의 댓글