【问题标题】:What is the need of Abstract class? [closed]抽象类需要什么? [关闭]
【发布时间】:2013-09-23 07:07:41
【问题描述】:

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

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

【问题讨论】:

标签: java


【解决方案1】:

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

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

Source

【讨论】:

  • +1 ,请不要忘记在添加图片/引用时附上来源。
【解决方案2】:

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

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() 不代表任何实际的现实世界中的车辆,而只是一种抽象,它应该返回什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2012-03-30
    • 2011-10-25
    • 2017-11-15
    • 2015-07-10
    • 2012-12-20
    • 1970-01-01
    相关资源
    最近更新 更多