Мы можем создать экземпляр интерфейса в Java? [дубликат]
этот вопрос уже есть ответ здесь:
можем ли мы создать объект интерфейса?
5 ответов
можно ли создать экземпляр интерфейса в 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
это правильно здесь?
7 ответов:
Да, ваш пример правильный. Анонимные классы могут реализовывать интерфейсы, и это единственный раз, когда я могу думать о том, что вы увидите класс, реализующий интерфейс без ключевого слова "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 }что ты сделал, было создать анонимный класс, который реализует интерфейс. Вы создаете анонимный объект, а не объект типа
interface Test.
короткий ответ...да. При инициализации переменной можно использовать анонимный класс. Взгляните на этой
нет, на мой взгляд , вы можете создать ссылку на переменную интерфейса, но вы не можете создать экземпляр интерфейса просто как абстрактный класс.
Да, мы можем, "анонимные классы позволяют сделать ваш код более кратким. Они позволяют одновременно объявлять и создавать экземпляр класса. Они похожи на локальные классы, за исключением того, что у них нет имени"->>Документации
Comments