OPEN between Secret

메소드 오버라이딩이란 본문

java/정의

메소드 오버라이딩이란

해가꿈꾸는달 2012. 5. 28. 20:35
반응형

메소드 오버라이딩 (슈퍼 클래스 메소드 무시하기 )


    1) 슈퍼 클래스와 서브클래스의 메소드 사이에서 발생하는 것.
    2) 슈퍼 클래스의 메소드를 동일한 이름으로 서브 클래스에서 재작성 하는것.
           |-> 즉 슈퍼클래스에서 선언된 메소드와 같은 이름, 같은 리턴 타입, 같은 매개 변수 리스트를 갖는 메소드를 
                 서브 클래스에 만드는것.
    3) 슈퍼 클래스의 메소드를 무시, 서브 클래스에서 오버라이딩된 메소드가 무조건 실행되도록 동적 바인딩이 된다.
    4) 메소드 오버라이딩은 객체 지향적 프로그램에서는 꽃이라 할수있다. 재사용을 목적으로 상속받아 쓸때 슈퍼
        클래스의 구현된 소스코드를 직접 수정하지 않고 오버라이딩을 통해 서브클래스에다가 내가 바꾸고 싶은대로
        바꿔서 쓸수가 있기 때문에

 

 

* 메소드 오버라이딩 조건
  -> 슈퍼 클래스에 선언된 메소드와같은 이름,같은 리턴타입,같은 매개변수 리스트를 갖도록 작성해야됨
  -> 슈퍼 클래스의 메소드 접근 지정자보다 범위가 좁아지면 안된다.
              !! public > protected > default > private  순임
      슈퍼 클래스의 메소드가 public 으로 선언 되었다면 서브 클래스에서는 protected나 private를 사용할수 없다.
      슈퍼 클래스의 메소드가 protected라면 서브 클래스는 prootected나 public만 사용할수 있음.

 

!! 동적 바인딩 !!
 서브 클래스에서 오버라이딩한 메소드를 만들었을때 업캐스팅에 의해 슈퍼 클래스 메소드를 불러오게 되더라도 서브 클래스에서 오버라이딩을 했기 때문에 결국엔 서브클래스의 메소드를 불러오게 되는것.

반응형

'java > 정의' 카테고리의 다른 글

오버로딩(overloading) 과 오버라이딩 (overriding)  (0) 2012.05.30
상속과 생성자  (0) 2012.05.28
f inal 키워드란  (0) 2012.05.26
접근 지정자  (0) 2012.05.22
생성자와 this() 를 이용한 예  (0) 2012.05.19