当前位置: 首页 > 面试题库 >

如何在Java中调用抽象类方法

蒲勇
2023-03-14
问题内容

我想在自己的类中调用抽象类的方法。抽象类是:

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”。 我