English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве вы изучите анонимные классы в Java с помощью примеров.
В Java класс может содержать другой класс, называемый вложенным классом. Вложенные классы можно создавать без указания их имен.
Неназванные вложенные классы называются анонимными классами.
Анонимные классы должны определяться в рамках другого класса. Поэтому они также называются анонимными внутренними классами. Грамматика:
class outerClass { //Определение анонимного класса object1 = new Type(parameterList) { //Тело анонимного класса }; };
Анонимные классы обычно наследуются от подклассов или реализуют интерфейсы.
Здесь:Типом (типом)может быть
超(предок)класс, наследуемый анонимным классом
Интерфейс, реализуемый анонимным классом
В этом коде в момент выполнения создается объект анонимного класса object1.
Внимание:Анонимный класс определен в выражении. Поэтому в конце анонимного класса используется точка с запятой для обозначения конца выражения.
class Polygon { public void display() { System.out.println("Внутри класса Polygon"); }; }; class AnonymousDemo { public void createClass() { //Создание анонимного класса, наследующего класс Polygon Polygon p1 = new Polygon() {}} public void display() { System.out.println("Внутри анонимного класса."); }; }; p1.display(); }; }; class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); }; };
Результат вывода
Внутри анонимного класса
В предыдущем примере мы создали класс Polygon. У него есть только один метод display().
Затем мы создали анонимный класс, который наследуется от класса Polygon и переопределяет метод display().
Когда мы запустим этот程序, будет создан объект анонимного класса p1. Затем этот объект вызовет метод display() анонимного класса.
interface Polygon { public void display(); }; class AnonymousDemo { public void createClass() { //匿名类实现接口 Polygon p1 = new Polygon() {}} public void display() { System.out.println("Внутри анонимного класса."); }; }; p1.display(); }; }; class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); }; };
Результат вывода
Внутри анонимного класса
В приведенном выше примере мы создали анонимный класс, реализующий интерфейс Polygon.
В анонимных классах объекты создаются по мере необходимости. То есть, объекты создаются для выполнения某些 специфических задач. Например:
Object = new Example() { public void display() { System.out.println("Анонимный класс перезаписывает метод display()."); }; };
Здесь, когда нам нужно перезаписать метод display(), динамически создается объект анонимного класса.
Анонимные классы также помогают нам упростить код.