Вы создадите экземпляры, просто экземпляры производного класса. Эти производные классы по-прежнему должны вызывать конструкторы и могут вызывать члены абстрактного класса, которые, в свою очередь, могут использовать закрытые члены.
Вот пример (не очень полезный, но просто чтобы показать основную идею ...)
public abstract class NamedObject
{
private final String name = name;
protected NamedObject(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
public class Computer extends NamedObject
{
private final int processorSpeed;
public Computer(String name, int processorSpeed)
{
super(name); // See, the constructor is useful
this.processorSpeed = processorSpeed;
}
public String toString()
{
return getName() + " (" + processorSpeed + ")";
}
}
Не могу сказать, что я пишу абстрактные классы , которые часто, обычно предпочитая композиции наследованию, но когда я делаю , я, конечно, использую конструкторы и закрытые члены.