2つのJavaクラスがあります。Bは、次のように別のクラスAを拡張します。
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
A.myMethod()
からB.myMethod()
を呼び出したいです。私は C++の世界 から来ていますが、この基本的なことをJavaで行う方法がわかりません。
探しているキーワードはsuper
です。たとえば、 このガイド を参照してください。
Superを使用して呼び出すだけです。
public void myMethod()
{
// B stuff
super.myMethod();
// B stuff
}
答えは次のとおりです。
super.Mymethod();
super(); // calls base class Superclass constructor.
super(parameter list); // calls base class parameterized constructor.
super.method(); // calls base class method.
super.MyMethod()
は、class B
のMyMethod()
内で呼び出す必要があります。だから次のようになります
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() {
super.MyMethod();
/* Another code */
}
}
Java Reflectionメカニズムを使用してそれを実行できると確信しています。 superを使用するほど簡単ではありませんが、より強力になります。
class A
{
public void myMethod()
{ /* ... */ }
}
class B extends A
{
public void myMethod()
{
super.myMethod(); // calling parent method
}
}
super.myMethod()を呼び出します。
super キーワードを使用します。
class test
{
void message()
{
System.out.println("super class");
}
}
class demo extends test
{
int z;
demo(int y)
{
super.message();
z=y;
System.out.println("re:"+z);
}
}
class free{
public static void main(String ar[]){
demo d=new demo(6);
}
}
ここで、ベースクラスのメソッドの1つをオーバーライドしているため、継承クラスからベースクラスメソッドを呼び出す場合は、super継承されたクラスの同じメソッドのキーワード。
super.baseMethod(params);
superキーワードを使用して基本メソッドを呼び出し、それぞれのパラメーターを渡します。
初期化にこれらのメソッドを使用する場合、クラスAのコンストラクターを使用し、クラスBのコンストラクター内でスーパーキーワードを渡します。
または、サブクラスメソッドからスーパークラスのメソッドを呼び出す場合は、サブクラスメソッド内でsuperキーワードを使用する必要があります。super.myMethod();
// Using super keyword access parent class variable
class test {
int is,xs;
test(int i,int x) {
is=i;
xs=x;
System.out.println("super class:");
}
}
class demo extends test {
int z;
demo(int i,int x,int y) {
super(i,x);
z=y;
System.out.println("re:"+is);
System.out.println("re:"+xs);
System.out.println("re:"+z);
}
}
class free{
public static void main(String ar[]){
demo d=new demo(4,5,6);
}
}