Ни один объект никогда не является экземпляром "просто" абстрактного класса - это всегда экземпляр класса конкретный . В противном случае вы могли бы вызвать абстрактные методы ... и не было бы никакой реализации, которая будет вызвана.
Переменные в абстрактном классе распределяются так же, как и переменные любого другого класса, который оказывается суперклассом фактического класса, который инициализируется - они живут «с» переменными из другого классы в иерархии, в основном.
РЕДАКТИРОВАТЬ: Чтобы уточнить, это концептуальное ограничение столько же, сколько реализация одно. Абстрактный класс обычно содержит абстрактные методы, что делает его абстрактным. Смысл абстрактных методов состоит в том, чтобы позволить вызывающей стороне проверять во время компиляции, что метод будет там, даже если абстрактный класс не обеспечивает реализацию. ВМ гарантирует, что является реализацией, предотвращая создание "просто" абстрактных классов.
Теперь абстрактные классы могут также использоваться для предотвращения создания экземпляров, даже если нет никаких абстрактных методов - по сути, фундаментальный момент абстрактного класса в том, что это тот, который не может * 1022 быть непосредственно созданным; могут быть созданы только конкретные подклассы.