SomeClassがParentActivityの静的ではない内部クラスである場合、SomeClassから直接ParentActivityでメソッドを呼び出すことができます。
public class ParentActivity {
protected void parentActivityMethod() {
System.out.println("Method called");
}
protected class InnerSomeClass { // This could extend SomeClass
protected void callParentMethod() {
parentActivityMethod();
}
// Maybe override SomeClass methods to invoke ParentActivity methods?
}
private InnerSomeClass someClass;
public ParentActivity() {
this.someClass = new InnerSomeClass();
someClass.callParentMethod(); // Will print "Method called"
}
}
これはsomeClass
はParentActivity
内でインスタンス化されている必要があります。
また、SomeClassオブジェクトをインスタンス化するときに、ParentActivityオブジェクトへの参照を渡すこともできます。これには、SomeClass定義を編集する必要もあります。
オリジナルの答え(もはや適用されます):
あなたはsuper
キーワードを経て、スーパークラスのメソッドを呼び出すことができます。
簡単な例:
public class Parent {
protected String s1;
protected void m1() {
System.out.println("PARENT M1");
}
}
public class Child extends Parent {
protected void m1() {
System.out.println("CHILD M1");
}
public String doSomething() {
super.m1(); // Prints PARENT M1
m1(); // Prints CHILD M1
return s1; // Same as super.s1 because s1 has not been redeclared
}
public static void main(String args[]) {
new Child().doSomething();
}
}
は、私はあなたが混乱していると思いますサブクラスが何であるかについて。あなたは私たちにいくつかのコードを見せてどうですか? – Falmarri
@Falmarri:例を追加しました。ごめんなさい。 – VansFannel