我遇到了一段代码,其中有一个抽象方法的调用?我只是想知道它意味着什么?同时,这个课程是从一个非抽象的方法中调用的。
答案 0 :(得分:2)
实现抽象类时,您还将实现一个具体的类。在具体类中,需要实现抽象类的所有抽象方法。
当抽象类中的方法调用抽象方法时,它引用具体类中此方法的实现。
public abstract class A {
public String method() {
// do something
int i = abstractMethod(); // abstract method call
}
public abstract int abstractMethod();
}
public class B extends A {
public int abstractMethod() { // <-- this implementation of the method is called.
return 1;
}
}
public class C extends A {
public int abstractMethod() { // <-- this implementation of the method is called.
return 100;
}
public static void main(String[] args) {
A a = new B();
a.method(); // -> abstractMethod of class B is called
a = new C();
c.method(); // -> abstractMethod of class C is called
}
}
答案 1 :(得分:0)
抽象方法是一种属于抽象类但没有实现的方法,这意味着它必须由抽象类的任何子项实现(或覆盖)。
答案 2 :(得分:0)
这就是抽象方法/类的全部概念:它允许开发人员稍后定义类的行为。
假设您的类需要“加载一些资源”,但您希望为该任务提供不同的实现。然后,您可以通过网络或文件系统等加载资源来覆盖抽象方法。
请参阅:http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
答案 3 :(得分:0)
抽象方法是抽象类或接口内的方法。它没有主体,必须先由子类定义才能实例化。这允许定义一些常用方法的接口类,但留下一些实现。
抽象方法可以从非抽象方法中调用,因为: