当前位置: 首页 > 知识库问答 >
问题:

未为类型基定义子方法

段铭晨
2023-03-14
public class Base {
    public String Method1() {
        System.out.println("Inside Base method 1");
        return "";
    }
}
class Child extends Base {
    static Base o = null;
    public String Method1() {
        System.out.println("Inside Base method 1");
        return "";
    }
    public String Method2() {
        return "Cant be called with base reference";
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Base base = new Child();
        base.Method1();
        base.Method2();***(Error : **The method Method2() is undefined for the type Base**)***
    }
}

正如代码所示,我想知道的是,在内存分配中,隐藏Base而不调用子的额外方法的实际情况是什么,它被调用了什么,有没有一种通过Base调用方法的方法。请帮忙

共有2个答案

卫弘懿
2023-03-14

您需要更多地研究多态性是如何工作的。您的实例是子实例,但您将其用作基础实例。基地对他的孩子一无所知,他只知道他的方法。将实例强制转换为子实例以访问它们的自定义方法。

((Child)base).Method2()
汪胡非
2023-03-14

Base.method2()无效,因为基类没有同名的方法,这就是错误的含义

未为类型基定义方法Method2()

既然您正在执行此操作:

Base base = new Child();

你有一个选择是转换,然后你可以调用那个方法...

Base base = new Child();
base.Method1();
((Child) base).Method2();
 类似资料:
  • 问题内容: 我对Java和android完全陌生,因此我尝试从android和数据库中找到有用的示例。我发现这个博客有一个项目: http://saigeethamn.blogspot.com/2009/10/android-developer-tutorial- part-12.html 我运行了该项目,它运行正常,但是我试图创建一个新项目,以将代码复制并粘贴到其中,但这不起作用:( 我在这条线

  • 问题内容: 我有一种方法来创建类的对象列表 我的产品类别是: 我收到一个错误,指出该类型的方法未定义,其他方法也是如此。请帮助我解决此错误。 我的说法正确吗? 问题答案: 我的说法正确吗? 不,这是不正确的。产品不是类的实例,而是类的实例。List没有任何称为的方法。 如果要从列表中检索元素并使用它创建另一个实例,可以执行以下操作: 但是请确保您在列表中有元素,否则您可能会遇到异常。product

  • 所以我正在尝试将Jsoup安装到Eclipse。 创建用户库(窗口- 所以我试着运行他们在网站上给出的示例(参见代码),我可以导入文档和元素。但它一直在“连接”上出错。我做错什么了吗??有人知道如何解决这个问题吗? 错误: 测试组:

  • 我在Gradle依赖项中包含了Lombok项目,如下所示: 我已经用 但现在我根本无法构建我的项目。我遇到这样的错误: 错误:C:\User\Igor\Workspace\Geofinging_库\my-sdk\src\main\java\com\sdk\MyMonitor.java:93:对于Geofence类型,方法getLatiite()未定义 但我知道getLatitude是由龙目岛在我的

  • 问题内容: 取自Android的想法:从对话框中模糊和暗化背景窗口。我无法使对话框下的内容模糊。当调用eula.getWindow()时,我收到此错误: 对于类型AlertDialog.Builder,未定义方法getWindow() 随同主要活动中的以下代码一起显示出eula: 任何帮助是极大的赞赏。 问题答案: 是对话框类的方法,而不是对话框生成器的方法。您的代码应该看起来像这样: 请注意,尽