chaoredsdragon 2019-06-26 21:55 采纳率: 100%
浏览 5800

抽象类可以创建对象吗?

这种情况搞不懂,创建对象成功了,是只要把抽象方法给具现化了就能创建吗?

abstract class Driver {
    public abstract void drive();
}

public class Test {
    public static void main(String[] args) {

        Driver d = new Driver() {
            @Override
            public void drive() {
                System.out.println("drive");
            }
        };

        d.drive();

        Driver d2 = new Driver() {
            @Override
            public void drive() {
                System.out.println("don't drive");
            }
        };

        d2.drive();
    }
}

  • 写回答

4条回答

  • 柳金宇 2019-06-27 08:47
    关注

    抽象类和接口都能创建对象,只是后边的new不能是new他们自己,但可以new他们的实现类(必须是类,不能是抽象类和接口),
    人们使用抽象类和接口只是为了说明要干什么事,而让他们的实现类去根据自己的需要去实现这些方法,比如说抽象类定义一个eat()方法,
    它并没有说这个方法具体怎么做,羊就可以吃草,虎就可以吃肉,羊和虎都实现了这个吃的方法。

    评论

报告相同问题?