본문으로 바로가기

2017 지방 전산9 오버로딩, 오버라이딩...

category 끄적거림 2019.01.11 22:57

누군지 모르겠지만, 궁금한 게 있으면 동생한테 물어보지 말고, 저한테 말씀 주세요.


동생은 컴맹인지라...

사실 저도 컴맹이긴 합니다만, 동생 보단 괜찮을 겁니다(?) 정말이냥? ㅡㅡ;;


class Bar extends Foo {


자식 클래스인 Bar가 부모 클래스 Foo로부터 상속 받으니, 부모 클래스인 Foo의 메서드 "public void addValue(int i), public void addFive()"를 받습니다.


그러기에 자식 클래스 Bar에 있는 "public void addValue(double i) 메소드 명은 같고, 매개 변수(파람)값이 다르니, 오버로딩이지요잉~


그리고,

부모 클래스에 있는 public void addFive()와 자식 클래스의 public void addFive()가 같기에, 오버라이딩이 됩니다.


여기서 자식 클래스 Bar는 부모 클래스 Foo와 접근 제한자, 리턴 타입, 메소드 이름, 매개 변수가 모두 부모 클래스와 동일해야 됩니다.


제 기억이 맞다면, 접근 제한자의 경우 protectcted이면, public이 되어도 상관 없는 걸로 알고 있는데, 현역에서 은퇴한지 수십 년이 되어서리 가물가물 하네요. 사실 지금은 관리자 역할이라;;; 실무와는 거리가 멀어서리;;


Foo f = new Bar();
           f.addValue(1);
           f.addFive();


결과는

Foo : 4
Bar : 13


만약 인스턴스를 Foo()로 하면,

Foo f = new Foo();
           f.addValue(1);
           f.addFive();


결과는

Foo : 4
Foo : 9

가 됩니다.


댓글을 달아 주세요