Java 创建子类的对象

Java 创建子类的对象,java,android,Java,Android,我有MyClass mc=newmyclass(),我需要访问子类:mc.Sub.Check() -在这种情况下不起作用 public class MyClass { public onCreate() { super(); } Public class Sub { public void Check() { // } } } 您可以像任何其他类一样启动内部类,即newmyclass.Sub,然后调用该方法。如果要跳过初始化,必须将嵌套类声明

我有
MyClass mc=newmyclass()
,我需要访问子类:
mc.Sub.Check()

-在这种情况下不起作用

public class MyClass {
  public onCreate() {
    super();
  }
  Public class Sub {
    public void Check() {
      //
    }
  }
}

您可以像任何其他类一样启动内部类,即
newmyclass.Sub
,然后调用该方法。如果要跳过初始化,必须将嵌套类声明为static


(另外:非静态内部类的实例只能存在于包含类的实例的上下文中)。

您只需像普通类一样创建内部类的对象即可。在上述情况下,您可以通过以下方式进行操作

Sub Sub=新Sub()

sub.check()

将上述代码放入onCreate()中


希望这将对您有所帮助。

只有静态的方法被调用为类名,您可以将该方法设置为静态的,或者在外部类中创建内部类的一个实例以及包含该实例的所有方法。

您有一个内部类。链接没有。我想说的是,这不是一个相关的问题。请阅读一点java。首先,
Public class Sub
应该是
Public class Sub
,其次,如果
MyClass
Activity
的扩展,您很可能要从
onCreate()
调用超级构造函数,尽管缺少
扩展活动
部分。第三,如果你想从一个子类访问一个方法,比如你的例子(没有实例化),你必须使这个方法是静态的。否则您将调用
newmyclass.Sub().Check()
。最后,建议您遵循java命名约定,重命名
Check()
Check()
@Jave您在一些方面是不对的。这不是活动的延伸&我没有错过。我实际上不需要静态类,因为我只在应用程序的一部分中使用这个类。但不管怎样,我还是浏览了你的评论。:)@我还用这种方式解决了这个问题:MyClass.Sub=newmyclass.Sub();已解决:MyClass.Sub a=新的MyClass.Sub();。在onCreate()中我实际上不需要它,因为我的类很大&我很少使用Sub。但它也可以工作,accept。