메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 java 프로그래밍

뇌를 자극하는 java 프로그래밍 질의응답 게시판입니다.

멤버필드는 오버라이딩이 되지 않는 건가요?

2008-09-10

|

by 자바

2302

class aaa {
        int num1 = 1;
        int num2 = 2;
        
        void print() {
                System.out.println("aaa");
        }
}
class bbb extends aaa {
        int num1 = 3;
        int num2 = 4;
        
        void print() {
                System.out.println("bbb");
        }
}
public class Main {
        public static void main(String ar[]) {
                aaa b = new bbb();
                System.out.println(b.num1);
                System.out.println(b.num2);
                b.print();
                
        }
}

위와같은 프로그램이 있을때
실행결과는

1
2
bbb  로 나옵니다.

그런데 메서드는 오버라이딩 되어 bbb의 메서드를 실행하는데
멤버 필드는 aaa의 멤버필드 값이 찍히네요.
어떻게 이해해야 하나요?
단순히 멤버필드는 오버라이딩이 되지 않는다기 보다 먼가 이해하는 방법이 없을까요..?
멤버필드는 상속은 되지만 다형성의 적용이 안되는 건가요?

답변을 좀 부탁드립니다.
댓글 입력
자료실