'JAVA예제'에 해당되는 글 1건

  1. 2008/09/19 JAVA - 상속 "오버라이딩" 의미와 예제

1.    오버라이딩 (overriding)

 

-          상속관계에 있는 클래스들간에 같은 이름의 메소드를 정의하는 행위로 처음 메소드의 기능을 덮어버리는 것

-          , 상위클래스의 있는 메소드의 내용을 하위클래스에서 바꿈

-          기존 클래스의 메소드 구현 부분만 약간 변화시켜 새로운 클래스를 생성할 수 있다.

-          Name, Return type, Argument list가 같아야 한다.

 

2.    오버라이딩 조건

 

-          final로 선언된 메소드는 오버라이딩(중복정의) 할 수 없다.

-          static 메소드는 반드시 static 메소드로 오버라이딩 해야 한다.

-          오버라이딩된 메소드의 접근변경자가 더 private하면 안 된다.

è     새로 오버라이딩 한 메소드는 아래의 접근변경자에서 우측 방향에 있는  또는 같은 종류의 접근변경자만 지정할 수 있다는 것이다.

è     private --> (friendly) --> protected --> public

class A { void m(int i, String s) {} // 메소드 정의 }

class B extends A { private void m(int i, String s) {} }

// friendly private로 중복정의 불가

-          오버라이딩된 메소드가 상위클래스의 메소드보다 더 넓은 범위의 확인 예외(checked exception)를 발생시키면 안 된다.

 

3.    오버라이딩 예제

 

public class Parent4{

   public void restDay(){

       System.out.println("잠을 잔다.");

   }

}

 

public class Child4 extends Parent4{

   public void restDay(){

       System.out.println("데이트를 한다.");

   }

}

 

public class Overriding_Test2{

 public static void main(String args[]){

  Parent4 p=new Parent4();

  Child4 c=new Child4();

  p.restDay();

  c.restDay();

 }

 }

 

실행결과

---------- java ----------

잠을 잔다.

데이트를 한다.

Normal Termination

출력 완료 (0초 경과).

Posted by 티엘로