"메소드 오버라이딩"의 두 판 사이의 차이

잔글 (Jmnote 사용자가 오버라이딩 문서를 메소드 오버라이딩 문서로 옮겼습니다)
잔글 (봇: 자동으로 텍스트 교체 (-==참고 자료== +==참고==))
 
(다른 사용자 한 명의 중간 판 11개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;method overriding, override
;method overriding, override
;메소드 오버라이딩, 오버라이드
;메소드 오버라이딩; 오버라이딩, 오버라이드
*메소드 덮어쓰기
*상속 후 메소드 덮어쓰기
*[[슈퍼 클래스]]에 정의된 메소드를 [[서브 클래스]]에서 다시 정의하여 덮어쓰는
*[[서브 클래스]]에서 [[슈퍼 클래스]]의 메소드를 새롭게 정의하여 쓰는
*매개변수, 리턴타입이 같아야 함<ref>다르면 [[오버로딩]]이 되겠지...</ref>
 
==실습 예제==
;소스 코드
<source lang='java'>
class Base {
  Base() { System.out .println ("Base: Base"); }
  void print() { System.out .println ("Base: print"); }
  static void staticPrint() { System.out .println ("Base: staticPrint"); }
}
</source>
<source lang='java'>
class Derived extends Base {
  Derived() {System.out .println ("Derived: Derived"); }
  void print() {System.out .println ("Derived: print"); }
  static void staticPrint() {System.out .println ("Derived: staticPrint"); }
}
</source>
<source lang='java'>
public class Main {
  public static void main (String[] args) {
    Base base = new Base();
    base.print();
    Derived derived = new Derived();
    derived .print();
    Base derivedInBaseVariable = new Derived();
    derivedInBaseVariable.print();
    Base.staticPrint();
    Derived.staticPrint();
  }
}
</source>
 
;실행 결과
<source lang='text'>
Base: Base
Base: print
Base: Base
Derived: Derived
Derived: print
Base: Base
Derived: Derived
Derived: print
Base: staticPrint
Derived: staticPrint
</source>


==같이 보기==
==같이 보기==
*[[상속]]
*[[상속]]
*[[오버로드]]
*[[오버로드]]
*[[연산자 오버라이딩]]
*[[덮어쓰기]]
==주석==
<references/>


==참고 자료==
==참고==
*https://en.wikipedia.org/wiki/Method_overriding
*https://en.wikipedia.org/wiki/Method_overriding


[[분류: 객체지향]]
[[분류: 객체지향]]

2017년 7월 14일 (금) 02:08 기준 최신판

1 개요[ | ]

method overriding, override
메소드 오버라이딩; 오버라이딩, 오버라이드

2 실습 예제[ | ]

소스 코드
class Base {
  Base() { System.out .println ("Base: Base"); }
  void print() { System.out .println ("Base: print"); }
  static void staticPrint() { System.out .println ("Base: staticPrint"); }
}
class Derived extends Base {
  Derived() {System.out .println ("Derived: Derived"); }
  void print() {System.out .println ("Derived: print"); }
  static void staticPrint() {System.out .println ("Derived: staticPrint"); }
}
public class Main {
  public static void main (String[] args) {
    Base base = new Base();
    base.print();
 
    Derived derived = new Derived();
    derived .print();
 
    Base derivedInBaseVariable = new Derived();
    derivedInBaseVariable.print();
 
    Base.staticPrint();
    Derived.staticPrint();
  }
}
실행 결과
Base: Base
Base: print
Base: Base
Derived: Derived
Derived: print
Base: Base
Derived: Derived
Derived: print
Base: staticPrint
Derived: staticPrint

3 같이 보기[ | ]

4 주석[ | ]

  1. 다르면 오버로딩이 되겠지...

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}