본문 바로가기
카테고리 없음

[JAVA] Overloading, overriding

by hbIncoding 2023. 10. 27.

1. Overloading이란?

  • 정의 : 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의 할 수 있다.
  • 조건 : 메소드의 이름이 같고 매개변수의 개수나 타입이 달라야 한다.
    • 주의 점: 리턴 값만 다른 것은 오버로딩이 불가능 하다.
  • 사용하는 이유
    • 같은 기능을 하는 메소드를 하나의 이름으로 사용 가능
    • 메소드의 이름을 절약할 수 있다.

2. Overriding 이란?

  • 정의 : 부모 클래스로 부터 상속 받은 메소드를 자식 클래스에서 재정의하는 것
  • 조건 : 오버라이딩 하려는 메소드의 이름, 매개 변수, 리턴 값이 모두 같아야한다.
  • 오버라이딩에서 접근 제어자를 설정하는 규칙
    • 자식 클래스에서 오버라이딩 하는 메소드의 접근 제어자는 부모 클래스 보다 좁게 설정할 수 없다.
      • private, public, defalut, protected
    • 예외는 부모 클래스의 메소드 보다 많이 선언 할 수 없다.
    • static메소드를 인스턴스의 메소드로 또는 그 반대로 바 꿀 수 없다.

 

3. 참조

1) 오버라이딩, 오버로딩: https://hyoje420.tistory.com/14

 

[Java]오버로딩 & 오버라이딩(Overloading & Overriding)

오버로딩(Overloading) 오버로딩(Overloading)이라는 뜻은 사전적으로 '과적하다.'라는 뜻이다. C언어에서는 함수명이 고유하게 존재해야 한다. 즉 하나의 함수가 하나의 기능만을 구현해야 한다는 것

hyoje420.tistory.com