我想在自己的类中调用抽象类的方法。抽象类是:
public abstract class Call {
public Connection getEarliestConnection() {
Connection earliest = null;
...
return earliest;
}
}
我想调用上面的方法,并且调用的类是:
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");
}
}
}
每当我尝试运行上述类时,它都会在line上引发NullPointerException c = cal.getEarliestConnection()
。谁能告诉我如何解决这个问题?
首先,Call
一个抽象类,因此您不能直接实例化它。您必须创建一个子类,比如说MyCall extends Call
它覆盖Call中的任何抽象方法。
获得一个NullPointerException
意味着您作为参数传入的任何内容都getCallFailedString()
尚未初始化。因此,在创建Call的子类之后,您必须实例化它,然后将其传递给您的方法,如下所示:
class MyCall extends Call
{
//override any abstract methods here...
}
无论您在哪里打电话,getCallFailedString()
都需要上面的东西:
Call cal = new MyCall();
Activity activity = new MyActivity();
activity.getCallFailedString(cal);
这似乎是一个基本问题。但在采访前需要澄清。 我在抽象类中有一个非抽象方法。它的具体类重写了该方法。但我想调用父类的原始方法来调用,而不是重写方法。有什么办法吗? 据我所知,没有办法调用原始方法?
大家好,我对java很陌生,还在学习OOP原理。直接回答问题。所以我有一个抽象类和两个继承自它的类。看起来是这样的: 现在我做到了: 在这一点上,我想做或(当然不是两者都做,因为我创建了一个孩子),但我两者都不能做。
下面是解释我的情况的基本框架代码。 这是超级抽象类: 这是超级抽象类的一个子类:(注意,我删除了其他函数,比如构造函数和方法,以缩短文章的篇幅 我想在抽象类中使用这种公共无效支付(int金额)方法;然而,超级抽象类Person不会接受支付(付款),因为该方法不在范围内。如何使这个工作? 谢谢~
我通过学校为一项任务提供的简报创建了一个飞机座位预订系统。我遇到了一个我无法解决的主要问题。 摘要说明抽象类必须有一个抽象方法和大约4个公共方法。在抽象类的两个子类中,我们都必须初始化对象数组(所有普通的座位)。然而,一旦它们被初始化,我不知道如何将它们发送回抽象类(该类有一个检查未预订的飞机座位的方法,这就是我需要初始化的座位对象的地方) ArrayIndexOutOfBounds在一个应该在边
问题内容: 我是第一次使用JUnit进行Java测试。我必须使用Java,并且想使用单元测试。 我的问题是:我有一个带有一些抽象方法的抽象类。但是有些方法不是抽象的。如何使用JUnit测试此类?示例代码(非常简单): 我要测试并运行。 在“JUnit常见问题解答”部分中,我找到了此链接,但我不理解作者想在此示例中说些什么。这行代码是什么意思? 问题答案: 如果您没有该类的具体实现,并且方法不是测试
我被要求创建一个主方法,允许我创建一个狼对象、鹦鹉对象和犀牛对象,我已经为这些动物中的每一个创建了类,他们扩展了抽象类动物,其中包含一个抽象方法makeNoise()。我已经在我的犀牛、鹦鹉和狼类中实现了这个抽象方法,该方法包含一个System.out.println函数和与这些动物中的每一个相关的噪声。例如,我的鹦鹉类(扩展动物)包含一个方法makeNoise(),它打印出“Squawk”。 我