shi*_*229 7 java abstract-class
我想在我自己的类中调用抽象类的方法.抽象类是:
public abstract class Call {
public Connection getEarliestConnection() {
Connection earliest = null;
...
return earliest;
}
}
Run Code Online (Sandbox Code Playgroud)
我想调用上面的方法,调用类是:
public class MyActivity extends Activity {
Connection c = new Connection();
private void getCallFailedString(Call cal)
{
c = cal.getEarliestConnection();
if (c == null) {
System.out.println("** no connection**");
} else {
System.out.println("** connection");
}
}
}
Run Code Online (Sandbox Code Playgroud)
每当我尝试运行上面的类时,它就会在行上抛出NullPointerException c = cal.getEarliestConnection().谁能告诉我如何解决这个问题?
Yuu*_*shi 15
首先,Call是一个抽象类,因此你无法直接实例化它.您必须创建一个子类,比如说MyCall extends Call它会覆盖Call中的任何抽象方法.
获得一个NullPointerException意味着你作为参数传入的任何东西都getCallFailedString()没有被初始化.因此,在创建Call的子类之后,您必须实例化它,然后将其传递给您的方法,如下所示:
class MyCall extends Call
{
//override any abstract methods here...
}
Run Code Online (Sandbox Code Playgroud)
无论你在哪里打电话,getCallFailedString()都需要上面的东西,如:
Call cal = new MyCall();
Activity activity = new MyActivity();
activity.getCallFailedString(cal);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45055 次 |
| 最近记录: |