优秀的编程知识分享平台

网站首页 > 技术文章 正文

Java抽象类真的不能被实例化?(java中抽象类不能实例化)

nanyue 2024-09-07 16:42:23 技术文章 7 ℃

Java码农们,应该都知道这么一个原则:Java中的abstract类不能被实例化。

比如:

1.

abstract class SuperA {

private String str;

public SuperA(){}

public SuperA(String a) {

System.out.println("SuperA is initialized");

this.str = a;

System.out.println(str);

}

public abstract void play();

}

2.

public class Main {

public static void main(String[] args) {

SuperA a = new SuperA(); // 报错:Cannot instantiate the type SuperA

}

}

显然,Java中的抽象类不能通过new xxx()是方式实例化。

那么,我怎么实例化Java抽象类呢?

public class Main {

public static void main(String[] args) {

SuperA a = new SuperA(){

@Override

public void play(){

}

};

}

}

这样,就可以了。也就是说,不能简单地用new xxx();而是要用new xxx(){},并在{}中实现abstract中所有的abstract方法。

最近发表
标签列表