본문 바로가기

개발/Java

[Java] Overriding 과 Overloading 차이

반응형

Overriding

상위 클래스의 메서드와 이름과 용례(signature)가 같은 함수를 하위 클래스에 재정의하는 것을 말한다.

ex)

public abstract class Shape {
  public void printMe() { System.out.println("Shape"); }
  public abstract double computeArea();
}
public class Circle extends Shape {
  private double rad = 5;
  @Override // 개발자의 실수를 방지하기 위해 @Override(annotation) 쓰는 것을 권장
  public void printMe() { System.out.println("Circle"); }
  public double computeArea() { return rad * rad * 3.15; }
}
public class Ambiguous extends Shape {
  private double area = 10;
  public double computeArea() { return area; }
}

Overloading

두 메서드가 같은 이름을 갖고 있으나 인자의 수나 자료형이 다른 경우를 말한다.

ex)

public double computeArea(Circle c) { ... }
public double computeArea(Circle c1, Circle c2) { ... }
public double computeArea(Square c) { ... }

 

결론

1. 오버로딩 : 같은 동작을 해야 하는 메소드를 작성해야 하는데 매개변수가 다른 경우.

2. 오버라이딩 : 상속 받은 메소드를 다시 정의하고 싶을때.

 

 

반응형

'개발 > Java' 카테고리의 다른 글

[Java] JVM이란?  (0) 2023.10.24
[Java] ArrayList에서 int array 변환 방법  (0) 2023.10.23
[Java] 변수의 종류  (0) 2023.10.16
[Java] 접근 제어자(Access Modifier)  (0) 2023.10.16
[Java] 사용자 정의 예외의 특징과 사용법  (0) 2023.10.16