Я не уверен, что это будет означать, и мой учебник танцует вокруг ответа.Может ли абстрактный класс использоваться как ссылочный тип?
6
A
ответ
7
Да, вы можете:
abstract class AbstractClass {
}
class DeclaredClass extends AbstractClass {
}
AbstractClass c = new DeclaredClass();
выше вполне допустимо.
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(){};
Я думал, тебе не разрешили утверждать абстрактный класс, или я читаю последнюю строку неправильно? – nogamo
@nogame Присмотритесь. Объявленный класс создается не абстрактным классом. – helpermethod
О, так что если бы это было DeclaredClass c = new AbstractClass(); то это будет недействительным? – nogamo