抽象类的确切用途是什么?普通类不能像抽象类一样做同样的事情吗?
抽象类的确切用途是什么?普通类不能像抽象类一样做同样的事情吗?
抽象类用于当你有一些基本功能需要子类继承,但是实例化基类并没有意义。例如,如果你有一个形状(Shape)基类,你可以在其中包含一些内置的实现,这些实现可以被子类使用,同时还有一些接口方法需要子类实现。但是,创建形状(Shape)对象可能没有意义,抽象类提供了这个功能。另一个抽象类使用的绝佳示例是抽象工厂模式。
普通的类需要你提供所有方法的实现。
接口要求你不为所有方法提供任何实现。
抽象类是唯一一种既允许你拥有包含实现的方法,又允许你拥有不提供实现但需要继承类提供实现的方法的类。
由于你可以添加没有实现的方法,这就是为什么你不能实例化一个抽象类的原因:你只能实例化所有方法都有实现的东西。
抽象
类可以包含抽象
方法。它们的作用很像接口成员。