Aを継承したBのstaticメソッドからAのprotectedメソッドを呼びたい場合。
class A {
protected void foo() {
Console.WriteLine("foo");
}
}
class B: A {
public static void bar() {
this.foo(); // < エラー!
}
}
staticなのでクラスのメンバでもなければインスタンスも存在していないので、
class bではエラーが起きる
それでも、呼び出したい場合
class B: A {
public static void bar() {
B bi = new B();
bi.foo();
}
}
のように、class Bのインスタンスを作れば呼び出せる。
上記は、C#のプログラムだが、Javaも同様。
[コメントが多かった順の記事]
・人の心理の裏をかくホームページ集客術:リピータになってもらうためには(233)
・ホームページ心理学第2弾「メールの書きだしとホームページ運営・集客の関係」(76)
・娘が生まれた(69)
・ゲームと言えば、何を思い出す? (50)
・Microsoftからアクセス (30)
・「目標の立て方」と「努力」と「実行力」(26)
最近のコメント