의견.png

오버라이딩

해시넷
sykang001215 (토론 | 기여)님의 2020년 8월 6일 (목) 10:42 판
이동: 둘러보기, 검색

오버라이딩(overriding)이란 조상 클래스로부터 상속받은 메소드(method)의 내용을 자손 클래스에 맞게 변경하는 것을 말한다. 오버로딩은 기존 메소드에 새로운 내용이 추가되지만, 오버라이딩은 기존 메소드 중 중복되는 내용이 새로운 내용으로 변경된다.

개요

상위 클래스가 가지고 있는 멤버변수가 하위 클래스로 상속되는 것처럼 상위 클래스가 가지고 있는 메소드도 하위 클래스로 상속되어 하위 클래스에서 사용할 수 있다. 하지만, 하위 클래스에서 메소드를 재정의해서 사용할 수 있다. 상속 관계에 있는 클래스 간에 같은 이름의 메소드를 정의하는 기술을 오버라이딩(Overriding) 이라고 한다.[1]

출처: https://hyeonstorage.tistory.com/185 [개발이 하고 싶어요]

메소드 오버라이딩,(method overriding)은 객체 지향 프로그래밍에서 서브클래스 또는 자식 클래스가 자신의 슈퍼클래스들 또는 부모 클래스들 중 하나에 의해 이미 제공된 메소드를 특정한 형태로 구현하는 것을 제공하는 언어의 특징이다. 서브클래스에서의 구현은 부모 클래스에서 같은 이름, 같은 파라미터 또는 시그니처 그리고 같은 반환형을 갖는 메소드를 제공함으로써 슈퍼클래스에서의 구현을 오버라이드한다. [2] 쉽게 말해 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 오버라이딩 이다.

등장배경/역사

특징

  • 메소드 이름이 같아야 한다.
  • 리턴형이 같아도 되고 달라도 된다.
  • 파라미터 개수가 달라야 한다.
  • 파라미터 개수가 같을 경우, 데이터타입이 달라야 한다.[3]

활용

public class 클래스A{ 
   int A = 1;
   int B = 2;

   public void method() {
       System.out.println(this.A+ this.B);
   }
}

public class 클래스B extends 클래스A{
   public void method() {
       System.out.println("A + B = " +(this.A+ this.B));
   }
}


각주

  1. , 〈[1]〉, 《오버라이딩이란》, 2013-12-8
  2. 메소드 오버라이딩〈[2]〉, 《위키백과》 , 2018-04-30
  3. 오버라이딩 특징〈[3]〉, 《매거진》 , 2016-04

같이 보기


  의견.png 이 오버라이딩 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.