sat*_*oid 35 java oop android class abstract
我已经读过我们只能通过继承它来实例化一个抽象类,但我们不能直接实例化它.
但是,我看到我们可以通过调用另一个类的方法来创建一个具有抽象类类型的对象.
例如 - LocationProvider是一个抽象类,我们可以通过调用类中的getProvider()函数来实例化它LocationManager:
LocationManager lm = getSystemService(Context.LOCATION_PROVIDER);
LocationProvider lp = lm.getProvider("gps");
Run Code Online (Sandbox Code Playgroud)
抽象类如何在这里实例化?
kir*_*uku 84
您不能直接实例化抽象类,但可以在没有具体类时创建匿名类:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
这也适用于接口.
| 归档时间: |
|
| 查看次数: |
110160 次 |
| 最近记录: |