2010-11-19 2 views

ответ

7

Да, вы можете:

abstract class AbstractClass { 

} 

class DeclaredClass extends AbstractClass { 

} 

AbstractClass c = new DeclaredClass(); 

выше вполне допустимо.

+0

Я думал, тебе не разрешили утверждать абстрактный класс, или я читаю последнюю строку неправильно? – nogamo

+1

@nogame Присмотритесь. Объявленный класс создается не абстрактным классом. – helpermethod

+0

О, так что если бы это было DeclaredClass c = new AbstractClass(); то это будет недействительным? – nogamo

2

Что я понимаю,

List a = new ArrayList(); 

Здесь List является ссылка на ArrayList объекта. Итак, вопрос означает, возможно ли это в случае абстрактного класса?

+1

Список - это интерфейс, кстати. –

+0

мой плохой ... плохой пример ... но все же ссылка ... –

0

Вы можете создать экземпляр абстрактного класса в 2-мя способами:

abstract class AbstractClass {} 

1. Расширение Абстрактный класс:

class ConcreteClass extends AbstractClass {} 
    AbstractClass c = new ConcreteClass(); 

2. Использование анонимного класса:

AbstractClass c = new AbstractClass(){};