Scott-Bing
2018-06-29 08:57
采纳率: 100%
浏览 886
已采纳

Java中,这样算不算对抽象类进行创建对象实例化

 abstract class Inter {
    public abstract void print();
    public abstract void run();
}

class Nonym {
    public static void main(String...args) {
        Inter i = new Inter() {
            public void print() {
                System.out.println("good");
            }

            public void run() {
                System.out.println("run");
            }
        };
        i.print();
        i.run();
    }
}
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • Fatal Error 2018-06-29 09:05
    已采纳

    实际上你是创建了Inter的子类,父类的类型指向了子类的实例,这事允许的。

    打赏 评论
  • m0_37867585 2018-06-29 09:03

    抽象类智能继承不能直接new

    打赏 评论
  • aixiaomeng123 2018-06-29 09:22

    这种写法是创建了一个Inter的匿名子类对象,抽象类不能创建对象

    打赏 评论
  • VIVIAN_WO 2018-06-29 09:28

    你这个不是实例化,只是实现的抽象类的方法。 如果你把方法去掉,单独去NEW一个看看哈。

    打赏 评论
  • sikwangxing 2018-06-29 09:33

    实际上你是创建了Inter的子类

    打赏 评论
  • VIVIAN_WO 2018-06-29 09:33

    你这个是新建了一个类,名字一样而已。

    打赏 评论
  • 缘雨剑 2018-06-29 10:51

    这样相当于创建了一个继承自Inter的子类的实例

    打赏 评论
  • weixin_42524654 2018-07-03 10:38

    你这种写法是创建了一个匿名内部类,实质是对抽象类创建了一个没有名字的子类,并重写了父类的方法,也就是说是对抽象类的子类对象创建了一个实例,不能算是对抽象类创建对象实例化

    打赏 评论

相关推荐 更多相似问题