Abstract类有什么需要?

时间:2013-09-23 07:07:41

标签: java

抽象类有什么需要?抽象类 - 是一个无法实例化的类。可以包括抽象或实例方法,构造函数等。

实例方法可用于实现继承此抽象类的所有派生类的通用功能。如果我的基类可以解决常见功能的实现,那么为什么我们需要一个抽象类来实现常用功能呢???任何人都可以帮助我。

2 个答案:

答案 0 :(得分:1)

抽象类可以为扩展它的类强制执行特定的设计模式。例如,有一种方法,每个Child类的实现都不同但方法必须在那里,然后该方法可以声明为抽象类中的抽象,同时,实现保持相同的公共方法可以由抽象父类的Child类继承。

简单图解释了下面的抽象类概念:

enter image description here

Source

答案 1 :(得分:0)

有时,实例化基类是没有意义的。举个例子

public abstract class Vehicle {

    public int getMaxSpeed();

使用子类

public class Car extends Vehicle {

    public void getMaxSpeed {
       return CAR_MAX_SPEED;

public class Train extends Vehicle {

    public void getMaxSpeed {
       return TRAIN_MAX_SPEED;

现在,如果你这样做

Vehicle v = new Vehicle(); // Not a car nor a train nor a bus...

v.getMaxSpeed()如果它不代表任何真实世界的车辆而只是抽象,应该返回什么?