public class Foo {
public int a = 3;
public void addFive() {
a += 5;
System.out.println("f");
}
}
public class Bar extends Foo{
public int a = 8;
public void addFive() {
this.a += 5;
System.out.print("b ");
}
public static void main(String[] args) {
Foo f =new Bar(); //이게 무슨의미를 갖고있는거에요? Foo 객체 f를 생성하고 Bar클래스를 덪붙인다??
f.addFive();
System.out.println(f.a);
}
}
Result:
b 3
Foo클래스 a 값이 프린트됬는데 왜 addFive()함수는 Bar 클래스것이 적용되는거에요?
this.a+=5;는 왜 적용이안되고 프린트만 적용되요?
상속에대해 책좀보면 답이나오겠지
상속다시
자바는 포인터 없으니까 저렇게 하냐? 씨벌 그냥 무조건 정적바인딩 밖에 안됨?
친구 책빌려줬다가 2주째 못받고있음...
정적이 아니라 자바는 변수를 선언하면 무조건 포인터로 만들어요.
int 같은 기본형 타입을 제외하면 말이죠.
상속에서 다형성 오버라이딩 부모 클래스에 자식 클래스를 넣어서 오버라이딩 된 메서드가 호출? 그리고 f에 a 를 찍었으니 3이 나오지 ㅡㅡ? 가물가물해 ㅅㅂ 인터넷 검색해라- From DC 도우미+