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。