package com.company;

public class PointTest2 {
public static void main(String[] args) {
Point p = new Point3D();
p.a(); // b!
p.aa(); // a!
// p.bb(); 에러
}
}

class Point {
protected void a() {
System.out.println("a!");
}

protected void aa() {
System.out.println("a!");
}
}

class Point3D extends Point {

@Override
protected void a() {
System.out.println("b!");
}

protected void bb() {
System.out.println("bb!");
}
}


내가 짜본건데 p.aa() 메서드를 호출하면 오버라이딩된 자식의 메서드가 호출되던데

주석처리 해놓은 p.bb()는 왜 에러가 뜨는건지 몰겠당 

부모와 자식의 것을 다 사용 가능하게 할 줄 알았고 그게 다형성인줄 알았것만..

아직 머릿속에 정리가 안 된 느낌이라




쓰는 이유나 그래서 얻는 이득

잘 안 쓰다 보니까 확 안 와닿네

정확한 해석좀 부탁함!