ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오버라이딩(overriding)
    Programming/JAVA 2020. 6. 9. 01:52

    오버라이딩, 조상클래스로부터 상속받은 메소드의 내용을 변경하는 것을 오버라이딩이라고 한다. 가끔 현재 클래스에서 상속받고 있는 조상메서드를 현재 클래스에 맞춰서 수정을 해야할 때가 있다. 이 때 우리는 조상클래스를 수정하는 작업을 하는데 이것을 우리는 메서드 오버라이딩이라고 지칭한다.

     

    다음의 소스코드를 잘 봐 보자.


    class point {

          int x;

          int y;

     

         String getLocation(){

                 return "x :" + x + ",y : "+y;

        }

    }

    class point3d extends point{

       int z;

       String getLocation(){

          return "x :"+x+",y :"+y+", z :"+z; //오버라이딩

       }

    }

     

    단, 이름과 매개변수 그리고 반환타입이 같아야 한다.

    ▶오버라이딩은 다 까먹어도 이거만 기억하자.

    다만 변경할 수 있는 것은 예외와 접근 제어자는 제한된 조건에서만 변경이 가능하다.

     

    접근제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.

    ▶만약 조상클래스의 접근 제어자가 protected 라면 그 위의 단위인 public 이나 protected로 써야한다.

    /* 접근 제어자는 나중에 후장에서 다루는 걸로 하자.

    링크: (일단 공백)/*

     

    조상 클래스보다 적거나 같게 예외를 시켜야만 한다.

    ▶조상 클래스의 예외보다 같거나 적게 해야하지만 Exception 자체를 throws해버리는 것은 최고 조상을 예외시키는 것으로 가장 많은 개수의 예외를 할 수 있도록 선언 한다는 것을 의미하는 것이다.

    //이것도 나중에  후장에서 다루는 걸로!

     

    조상 클래스에 정의 된 static 메서드를 자손 클래스에서 똑같은 이름의 static 메서드를 정의할 수 있는가?

    ▶결론은 일단 안돼! 이 메서드들은 각자의 클래스에 자신들이 묶여있다고 생각하거든! 그래서 변수.메서드이름() 대신에 클래스.메서드이름()으로 하는 것이 바람직해.

     

    오버라이딩은 간단하게 끝.

     

    제일 이해하기 쉬운 짤... 3초 있다가 이해했다.

    출처 : https://www.zerocho.com/category/JavaScript/post/59c17a58f40d2800197c65d6

     

     

     

    'Programming > JAVA' 카테고리의 다른 글

    제어자  (0) 2020.06.13
    super  (0) 2020.06.12
    상속(inheritance) - 중간 저장  (0) 2020.06.08
    오버로딩 (overloading)  (0) 2020.05.28
    멤버 변수 (스크랩)  (0) 2020.05.28
Designed by Tistory.