마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

인터페이스가 객체 생성의 new 키워드 사용이 왜 가능한걸까요?

0 추천
// 인터페이스
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으로 생성이 되더군요.
이게 내부적으로 어떤걸 의미하는지
내부적인 원리를 알고 싶습니다. 
갸아악 (21,260 포인트) 님이 2014년 4월 2일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...