OriginalGriff
Абстрактные классы не могут быть созданы, нет - в этом весь смысл. Они представляют собой "общий базовый класс", из которого выводятся конкретные примеры.
Например, класс автомобиля был бы абстрактным и дал бы начало производным конкретным классам FordFiesta1300, MercedesA180CDi, ToyotaHiLux и т. д. - потому что вы не покупаете "автомобиль", вы покупаете "Ford Fiesta 1300", или "Mercedes A250e", или ...
Автомобиль описывает все детали, которые делают его "автомобилем" : двигатель, рулевое колесо, водительское сиденье, четыре колеса и так далее; в то время как MercedesA180CDi заполняет детали: "2L Turbo Diesel", "форма кузова W169" и так далее. Фактический экземпляр автомобиля "мой автомобиль" добавляет детали, которые отличают его от всех других A180CDis: цвет, VIN-номер, регистрационный номер, зарегистрированный владелец, текущее местоположение, текущая скорость, уровень топлива в баке и так далее.
В вашем примере:
AbsBase obj =new DerivedBase();
obj
имеет тип AbsBase, что означает, что он может содержать экземпляр любого класса, производного от AbsBase.
В автомобильном выражении:
Car myCar = new MercedesA180CDi(Color.Black, "WDD169000J000000, "XX 99 XXX", originalGriff);
myCar
может вместить любой тип автомобиля - Форд, Мерседес, Ситроен, ... потому что все такие транспортные средства являются производными от абстрактного базового класса автомобиля.
Система сортирует из отдельного экземпляра, какой метод она должна вызывать, когда вы пытаетесь получить доступ к методу базового класса:
myCar.Drive();
Или
obj.getDetails();
В этом есть смысл?