为什么我们需要抽象类中的构造函数和私有成员?

2 java abstract-class

为什么我们需要抽象类中的构造函数和私有成员?这并不像我们要创建该类的实例.

Jon*_*eet 14

创建实例,只是派生类的实例.那些派生类仍然需要调用构造函数,并且仍然可以调用抽象类的成员 - 这可能反过来使用私有成员.

这是一个例子(不是一个非常有用的例子,但只是为了展示基本的想法......)

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 + ")";
    }
}
Run Code Online (Sandbox Code Playgroud)

我不能说我写的抽象类经常,一般倾向于组成继承,但是当我创造他们我当然使用构造函数和私有成员.