추상클래스에 대한 질문..입니다.
푸른나무
제가 알기로는 추상클래스는 객체를 생성하지 못하는 것으로 알고 있습니다. c++에서도 마찬가지로..
Thinking in java에서294p에서도 이런 내용이 나오고 있는데,, 문제는
이 소스입니다.
//추상클래스 Base
abstract class Base
{
public Base(int i) {
System.out.println(Base constructor, i= + i);
}
public abstract void f();
};
public class AnonymousConstructor
{
public static Base getBase(int i) {
return new Base(i) {
{
System.out.println(Inside instance intializer);
}
public void f()
{
System.out.println(In anonymous f());
}
};
}
public static void main(String[] args){ //! 추상 클래스인 Base의 객체가 생성되어진다.Error가 안난다.
Base base = getBase(47);
base.f();
}
};
위 소스와 보다시피 추상클래스인 Base의 객체가 생성되어서 함수 f()를 호출하는데도 에러가 안나는 군요.
java에서는 추상클래스의 객체 생성이 가능하다는 뜻이 되는거 같은데, 맞나요?
C++에서는 확실히 이와 같은 상황에서는 Error날텐데....