凪瀬 Blog
Programming SHOT BAR

目次

Blog 利用状況
  • 投稿数 - 260
  • 記事 - 0
  • コメント - 46956
  • トラックバック - 192
ニュース
広告
  • Java開発者募集中
  • 経歴不問
  • 腕に自信のある方
  • 富山市内
  • (株)凪瀬アーキテクツ
アクセサリ
  • あわせて読みたい
凪瀬悠輝(なぎせ ゆうき)
  • Java技術者
  • お茶好き。カクテル好き。
  • 所属は(株)凪瀬アーキテクツ
  • Twitter:@nagise

書庫

日記カテゴリ

 

ハイディング(hiding)というプログラミング用語をご存知ですか? なんらかの定義が別の定義で隠されることを言います。

Javaの場合、よくあるのはフィールドですね。 親のクラスで定義されたフィールドと同じ名前のフィールドを サブクラスのほうでも定義することができます。

public class Hoge {
  public int field = 1;
}

public class Piyo extends Hoge{
  public int field = 2;

  public void hoge() {
    System.out.println(field);
  }
}

この場合、fieldはPiyoクラスでの定義となり、2が表示されます。

このほか、ジェネリクスの型パラメータのハイディングというのもあります。

public class Test<T> {

  /** メソッドローカルのパラメータ型でハイディング */
  public <T> void hoge(T t) {
  }

  /** 内部クラスのパラメータ型でハイディング */
  class Inner<T> {
  }
}

メソッドローカルの型パラメータや、内部クラスでの型パラメータでハイディングが生じます。 これらハイディングは混乱の元となりますので、避けることが望ましいでしょう。

投稿日時 : 2007年8月9日 20:30
コメント
タイトル
名前
Url
コメント