如果无法实例化抽象类,那么这段代码是什么:ABS clsAbs = new ABS(){

Mar*_*ake 1 java abstract-class class abstract

我有一个关于抽象类的问题.

首先......我正在使用谷歌翻译,对不起:(我希望你理解.

如果无法实例化抽象类,那么这段代码是什么:

public class Ppal {

public void start(){

    ABS clsAbs = new ABS() {

        @Override
        public void absMetod() {
        }
    };

    clsAbs.metod();
}
}
Run Code Online (Sandbox Code Playgroud)

ABS:

public abstract class ABS{

public void metod(){}
public abstract void absMetod();

}
Run Code Online (Sandbox Code Playgroud)

ABS clsAbs = new ABS () {...这不是一个例子吗?可以使用clsAbs并且不能使用抽象类,只能创建抽象模型......

它可以用作匿名类,但这(ABS clsAbs = new ABS () {...)不是匿名的.

非常感谢你提前!

Ren*_*tti 12

您正在实例化一个正在扩展的匿名类class ABS.你可以实例化这个匿名类,因为它定义了所有的抽象方法ABS(Thanks Nebelmann)

如果你创建一个类public class Foo extends ABS实现的类是相同的absMetod()

你可以这样做: ABS bar = new Foo()

  • 并且您可以实例化此匿名类,因为它定义了ABS中的所有抽象方法. (2认同)