// 인터페이스
InterFaceTest inter = new InterFaceTest() {
@Override
public void dataPrint(String s) {
// TODO Auto-generated method stub
}
};
//추상클래스
AbstractTest abstractTest = new AbstractTest() {
@Override
void dataPrint(String s) {
// TODO Auto-generated method stub
}
};
int abstractVarA = abstractTest.a; //추상클래스에 있는 변수 a의 접근
System.out.println(abstractVarA);
//일반 클래스
ConcreteClass concreteClass = new ConcreteClass();
안녕하세요.
오늘은 또 심오한 궁금증이 생겼습니다.
다름이 아니라 인터페이스를 위와 같이 new 키워드로 객체 생성하듯 가능하여서 궁금합니다.
인터페이스도 new 키워드로 객체 생성처럼 해도 되는건가요?
그럼 인터페이스도 메모리상에 객체로서 올라가게 되는건가요?
바로 아래는 추상클래스인데 추상 클래스도 마찬가지로 new 키워드가 사용 가능합니다.
맨 아래는 일반 클래스인데 일반 클래스는 뭐 당연히 new 키워드로 객체 생성이 가능하니까요.
주목할것은 위의 인터페이스와 추상입니다.
new InterFaceTest() 라는것은 생성자를 호출하고 객체를 생성하는것인데,
인터페이스에는 생성자가 없습니다.
그런데 어찌 이런 문법이 가능한건지요.
아래 추상클래스에는 보니까 생성자가 있더라구요.
제가 한가지 발견햇는데 인터페이스와 추상클래스는 위와 같이 생성할때 Anonymous Innner Type으로 생성이 되더군요.
이게 내부적으로 어떤걸 의미하는지
내부적인 원리를 알고 싶습니다.