0

子の参照変数から親のメンバー関数にアクセスしたい。

私のコード:

class Emp
{
static String Cname="Google";
int salary ;
String Name;

void get(String s1,int s2)
{
    Name=s1;
    salary=s2;
}
void show()
{
    System.out.println(Name);
    System.out.println(salary);
    System.out.println(Cname);

}

}
public class Practice extends Emp{

/**
 * @param args
 */
void show()
{
    System.out.println("in Child class");
}
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Practice e=new Practice();
    e.show();
    e.get("Ratan",200000);
    ((Emp)e).show();
}

} 

出力は次のとおりです。

in Child class
in Child class

これは、子のメンバー関数が呼び出されている両方の時間を意味します。これを整理する方法は何ですか?

4

3 に答える 3

0

子クラスの外では不可能です。(子クラス内では super.show() を使用します)。

于 2012-05-26T13:12:19.773 に答える
0

次のようにスーパークラスのメソッドを呼び出す必要があります。

于 2012-05-26T13:09:44.503 に答える
0

やろうとしていることが本当にできない。他の人が言ったように、サブクラス内では、super.methodName(); を使用して基本クラスのメソッドを呼び出すことができます。

したがって、次のように Practice クラス内にメソッドを記述することができます。しかし、それはそもそも show() をオーバーライドするという点をいくらか無効にします。

オーバーライドを使用して基本クラスのメソッドの動作を変更するか、サブクラスに追加のメソッドを追加して、基本クラスの機能を強化する必要があります。あなたが提案したことを試してみることは、デザインを再考する必要があることを示しています。

于 2012-05-26T13:28:04.660 に答える