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

抽象类可以创建对象吗?

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

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()方法,
    它并没有说这个方法具体怎么做,羊就可以吃草,虎就可以吃肉,羊和虎都实现了这个吃的方法。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器