Анонимные классы

Можно объявить анонимный (безымянный) класс, который может расширить другой класс или реализовать интерфейс. Объявление такого класса выполняется одновременно с созданием его объекта посредством оператора new.

classBase {

void show(){}

}

//объявление класса и его тела

Base ob = new Base(){

voidshow(){

//новая реализация

}

};

Анонимные классы эффективно используются, как правило, для реализации (переопределения) нескольких методов и создания собственных методов объекта. Конструкторы ни определять, ни переопределять нельзя. Анонимные классы допускают вложенность друг в друга, что очень сильно запутывает код и делает эти конструкции непонятными, поэтому эти возможности обычно не используются.

/* пример # 6 : анонимные классы и логические блоки : AnonymousDemo.java */

abstract class A {

private char c = 'A';

A() {

}

A(char c) {

this.c = c;

}

public char getC() {

return c;

}

public abstract int getNum();

}

class AnonymousDemo {

static int j = 2;

static A ob1 = new A((char) 57) {

//A(char c) {ch = c + 1;}

// ошибка! Конструктор переопределять нельзя

{

System.out.println("первый анонимный класс");

}

public int getNum() {

return Character.digit(getC(), 10);

}

};

public static void main(String[] args) {

System.out.println(ob1.getNum());

A ob2 = new A() {

int i = 1;

{

System.out.println("второй анонимный класс");

}

public int getNum() {

i = show(); //вызов собственного метода

return i + Character.getNumericValue(getC());

}

int show() {

return i + j;

}

};

System.out.println(ob2.getNum());

}

}

В результате будет выведено:








Дата добавления: 2015-04-05; просмотров: 1074;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.