相关疑难解决方法(0)

访谈:我们可以实例化抽象类吗?

采访者问:我们可以实例化一个抽象类吗?我说,不,他告诉我 - 错,我们可以.

我对此有点争论.然后他告诉我自己在家里试试.

abstract class my {
    public void mymethod() {
        System.out.print("Abstract");
    }
}

class poly {
    public static void main(String a[]) {
        my m = new my() {};
        m.mymethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我正在创建我的类的实例并调用抽象类的方法.有人可以向我解释一下吗?在我的采访中我真的错了吗?

java oop class object abstract

561
推荐指数
10
解决办法
23万
查看次数

新Test()和新Test(){}之间的区别

这两种实例化类的新对象的方法有什么区别,如下所示:

Test t1=new Test();
Test t2=new Test(){ };
Run Code Online (Sandbox Code Playgroud)

当我尝试下面的代码时,我可以看到两个对象都可以访问该方法foo(),但是t2无法访问variable x(variable x无法解析):

public class Test
{ 
    int x=0;
    public void foo(){ }

    public static void main (String args[])
    {
        Test t1=new Test();
        Test t2=new Test(){ };
        t1.x=10;
        t2.x=20;
        t1.foo();
        t2.foo();
        System.out.println(t1.x+" "t2.x);
    }
}
Run Code Online (Sandbox Code Playgroud)

java anonymous-inner-class

33
推荐指数
4
解决办法
3241
查看次数

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

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

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

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

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 () {...)不是匿名的.

非常感谢你提前!

java abstract-class class abstract

1
推荐指数
1
解决办法
344
查看次数