下列关于Java抽象类的描述,哪个选项是准确的?
答案解析
A选项错误,抽象类可以没有抽象方法,一个类声明为抽象类,主要是为了强制子类必须扩展,并不一定需要有抽象方法。B选项错误,抽象类可以拥有构造方法,虽然不能直接实例化抽象类,但子类实例化时会调用父类的构造方法。C选项错误,抽象方法不能有具体实现,但访问修饰符可以是public或者省略,不能为private。D选项正确,如果子类没有实现父类抽象类中的所有抽象方法,那么子类也必须定义为抽象类。
正确答案:D