gpt4 book ai didi

java - 我们可以直接实例化一个抽象类吗?

转载 作者:IT老高 更新时间:2023-10-28 20:52:28 25 4
gpt4 key购买 nike

我读过我们只能通过继承来实例化一个抽象类,但我们不能直接实例化它。
但是,我看到我们可以通过调用另一个类的方法来创建具有抽象类类型的对象。
例如——LocationProvider是一个抽象类,我们可以通过调用LocationManager类中的getProvider()函数来实例化它:

LocationManager lm = getSystemService(Context.LOCATION_PROVIDER);
LocationProvider lp = lm.getProvider("gps");

抽象类在这里是如何实例化的?

最佳答案

不能直接实例化抽象类,但是可以在没有具体类的情况下创建匿名类:

public class AbstractTest {
public static void main(final String... args) {
final Printer p = new Printer() {
void printSomethingOther() {
System.out.println("other");
}
@Override
public void print() {
super.print();
System.out.println("world");
printSomethingOther(); // works fine
}
};
p.print();
//p.printSomethingOther(); // does not work
}
}

abstract class Printer {
public void print() {
System.out.println("hello");
}
}

这也适用于接口(interface)。

关于java - 我们可以直接实例化一个抽象类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4579305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com