클래스 상속에 따른 Overriding??
Together
안녕하세요?
늦깍기 java 열공(?)에 빠져있는 사람입니다.
매일 혼자서 공부하는게 너무 힘드네요 주위에 그렇다고 아시는 분들도 없고 ㅠ.ㅠ
질문 내용은 아래 간단한 소스를 제가 잘 파악을 못하겠다는겁니다.
클래스 상속에 따른 Overriding이라고 해야 하나... 하여튼 상속 받은 클래스로 부터 생성자를 재 정의 하여 출력하는 부분인데
이해가 어렵네요class Parent2 {
int i = 7;
public int get(){
return i;
}
}
class Child2 extends Parent2{
int i = 5;
public int get(){
return i;
}
}
public class ChildTest {
public static void print(Parent2 p){
System.out.println(p.i); // i = 7
System.out.println(p.get()); //p.get() = 5
}
public static void main (String [] ar) {
Parent2 p = new Parent2();
System.out.println(============1============);
System.out.println(p.i);
System.out.println(p.get());
System.out.println(============2============);
Child2 c = new Child2();
System.out.println(c.i);
System.out.println(c.get());
System.out.println(============3============);
Parent2 p1 = new Child2();
System.out.println(p1.i);
System.out.println(p1.get());
System.out.println(============4============);
print(c);
print(p1);
}
}
진하게 처리된 결과 부분에서 이해가 갈듯 말듯 한데 (ChildTest의 print() 생성자 부분에서 매개변수로(?) 상속받은 객체로 선언된 것을 Overriding 된것이라고 생각을 해야 할런지요?)
쉽게 설명해 주실분들이 안계실런지요?
고수님들의 시원한 답변을 부탁드립니다.
-
바름
재정의 라기보다 c는 그냥 child2 자체를 가르키는것이고 되고 p1은 child2안에 parent2를 가르킨다고 보시면 될겁니다. 하지만 메소드에 인자를 넘길때 둘다 parent2 타입으로 받게 됨으로써 둘다 child2 안의 parent2를 가르키는데 p.i는 parent2의 i를 가르키는것이고 p.get()도 parent2의 get()을 가르키지만 overriding에 의해서 오버라이딩 된 메소드인 child2 클래스의 get()메소드를 출력하는
-
ComeOn
print(c) 하고 print(p1)는 부모 클래스에서 자식 클래스 이름으로 처리가 되는 부분이군요
재정의 된 매소드는 자식의 매소드를 실행하고 그 외에 매소드 및 변수는 그대로 가져오는 것인지요?
다형성의 계념을 이해하기란 쉽지 않네요 답변 감사합니다. -
총알탄
print(c) 하고 print(p1) 하고는 같은 식이라고 보셔도 됩니다.
-
By은지
일단 그림설명이 안돼니 제가 알고 있는것을 설명하자면...
강조된 부분을 보시면 child2타입의 c 와 parent2타입의 p1이 parent2 타입으로 메소드에 들어가게 됩니다.
print(c)부분과 print(p1)부분이 들어가는것은 다르지만 실상은 안에 둘다 child2 객체가 들어가 있습니다.
child2 클래스는 parent2 클래스를 상속받았기때문에 child2 클래스는 즉 parent2 클래스이기도 하죠.
결국 print(c)와 pri
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2696094 | exe 파일 | 제철 | 2025-05-26 |
2696043 | 제이쿼리 .scroll() 관련 질문드립니다 | 이거이름임 | 2025-05-26 |
2695984 | 마크업상으로 하단에 있으나 우선적으로 이미지파일을 다운로드받는 방법 (1) | 들꿈 | 2025-05-25 |
2695934 | tr 속성값 (9) | 새 | 2025-05-25 |
2695905 | ASP로 개발됐을 때 css가 달라져요 ㅠㅠ (4) | 슬아라 | 2025-05-24 |
2695878 | form을 이용한 다른 페이지로 넘기는 방법을 알려주세요 (1) | 핫파랑 | 2025-05-24 |
2695844 | 저기 암호화 및 복호화 프로그램.. 만들어볼려는대 (2) | 한빛 | 2025-05-24 |
2695814 | [질문] PDA에서 애플릿이 가능한가요? (1) | 봄시내 | 2025-05-24 |
2695785 | 웹 설정 도와줄분 | 화이트캣 | 2025-05-23 |
2695730 | 갑자기 기억이 안나는데 accesskey 속성.. | 빛나라 | 2025-05-23 |
2695702 | [질문] Java 버전 차이에 의한 오류?!! (2) | 검사 | 2025-05-23 |
2695672 | 자바 임베디드 쪽으로 배우고 싶은데요..질문이요.. (1) | 뽀그리 | 2025-05-22 |
2695647 | 헉! 이클립스(v3.1)에서 발생되는 널포인트 익셉션? ;;; (3) | 아빠몬 | 2025-05-22 |
2695586 | IFRAME 캐싱 질문 | 봄나비 | 2025-05-22 |
2695498 | [질문]실행가능한 jar파일.. 정말 이해가 안가네요... ㅡㅜ;; | 터1프한렩 | 2025-05-21 |
2695468 | 자바랑 이클립스에서요.. | 스킬 | 2025-05-21 |
2695375 | Mysql 연동하는 자바 질문있습니다. | 아리솔 | 2025-05-20 |
2695319 | 파워포인트 파일을 저장할 수 있을까요? | 시윤 | 2025-05-19 |
2695289 | [질문]Tween 값의 정도를 알고 싶습니다. | 타마 | 2025-05-19 |
2695238 | c 와 c++의 시작 (10) | ChocoHoilc | 2025-05-18 |