program story

Java에서 인터페이스의 인스턴스를 만들 수 있습니까?

inputbox 2020. 10. 29. 08:06
반응형

Java에서 인터페이스의 인스턴스를 만들 수 있습니까?


이 질문에 이미 답변이 있습니다.

Java에서 인터페이스의 인스턴스를 만들 수 있습니까?

어딘가에서 내부 익명 클래스를 사용하여 다음과 같이 할 수 있다고 읽었습니다.

interface Test  
{  
    public void wish();  
}  
class Main  
{  
    public static void main(String[] args)  
    {  
        Test t=new Test()  
        {  
            public void wish()  
            {  
                System.out.println("output: hello how r u");  
            }  
        };  
    t.wish();  
    }  
}    

cmd> javac Main.java  
cmd> java Main  
output: hello how r u  

여기가 맞습니까?


예, 귀하의 예가 맞습니다. 익명 클래스는 인터페이스를 구현할 수 있으며, "implements"키워드없이 인터페이스를 구현하는 클래스를 보게 될 것이라고 생각할 수있는 유일한 시간입니다. 여기에서 다른 코드 샘플을 확인하세요.

interface ProgrammerInterview  {
    public void read();
}

class Website  {
    ProgrammerInterview p = new ProgrammerInterview () {
        public void read() {
            System.out.println("interface ProgrammerInterview class implementer");
       }
     };
}

이것은 잘 작동합니다. 이 페이지에서 가져온 것 :

http://www.programmerinterview.com/index.php/java-questions/anonymous-class-interface/


Java에서 인터페이스를 인스턴스화 할 수 없습니다. 그러나 인터페이스 유형별로 인터페이스를 구현하는 객체를 참조 할 수 있습니다. 예를 들면

public interface A
{
}
public class B implements A
{
}

public static void main(String[] args)
{
    A test = new B();
    //A test = new A(); // wont compile
}

위에서 한 것은 인터페이스를 구현하는 Anonymous 클래스를 만드는 것입니다. 유형의 개체가 아닌 익명 개체를 만들고 interface Test있습니다.


일반적으로 인터페이스에 대한 참조를 만들 수 있습니다. 그러나 인터페이스에 대한 인스턴스를 만들 수 없습니다.


짧은 대답 ... 예. 변수를 초기화 할 때 익명 클래스를 사용할 수 있습니다. 이것 좀 봐


제 생각에는 인터페이스의 참조 변수를 만들 수는 있지만 추상 클래스처럼 인터페이스의 인스턴스를 만들 수는 없습니다.


네, 맞습니다. 내부 클래스로 할 수 있습니다.


Yes we can, "Anonymous classes enable you to make your code more concise. They enable you to declare and instantiate a class at the same time. They are like local classes except that they do not have a name"->>Java Doc

참고URL : https://stackoverflow.com/questions/4587392/can-we-create-an-instance-of-an-interface-in-java

반응형