0

基本クラス Employee に子クラス (Pro) object から呼び出すことができる静的メソッド meth1() がある次のコードがあります。メソッドの隠蔽の場合ですか、それとも何ですか? 、Pro クラスに meth1() メソッドを実装していないためわかりませんが、Pro オブジェクトから Emplyee 静的メソッドを呼び出すことはできます。

class Employee
{  

  String s;

    public String getS() {
        return s;
    }

    public void setS(String s) {
        this.s = s;
    }
    protected static void meth1()
    {
        System.out.println("inside emp-meth1");
    }

}
public class Pro extends Employee {
/*
 *  public void meth1()
    {
        System.out.println("inside encapsulation-meth1");
    }
    */
    public static void main(String as[])
    {
        Pro e = new Pro();
    //  e.s ="jay";
        e.meth1();

    }

}

出力:

inside emp-meth1

ありがとう

ジェイエンドラ

4

1 に答える 1

1

何を隠そうとしているのですか?以下のコードを試してください

emp.meth1()参照されているオブジェクトに基づくのではなく、参照に基づいてメソッドを呼び出します。

class Employee
{  

  String s;

public String getS() {
    return s;
}

public void setS(String s) {
    this.s = s;
}
protected static void meth1()
{
    System.out.println("inside emp-meth1");
   }

}
public class Pro extends Employee {
  protected static void meth1()
  {
    System.out.println("inside encapsulation-meth1");
  }

public static void main(String as[])
{
    Pro e = new Pro();
    Employee emp = new Pro();
    emp.meth1();       //this is case of method hiding 
    e.meth1();

}

}

于 2014-10-16T14:54:05.947 に答える