0

Java の継承に関するスレッドがたくさんあることは知っていますが (私は既にそれを読みました)、それらはすべて「どのようにあるのか」を表しており、「どのように変更するか」という知識が必要です。したがって、2 つのクラスがあります。

class t1{
 public int a=5;

 public void get(){
    System.out.println(a);
 }
}

class t2 extends t1{
 public int a = 1;
}

そしていま :

 t2 z = new t2();
 z.get();

そして、私たちは得る5

もちろん、これは単なる例ですが、私がやりたいのは、継承されたクラスのフィールドを使用するスーパークラスでいくつかの一般的なメソッドを作成することです。ユーザーメッセージ

これを行う方法はありますか?そうでない場合、なぜスーパークラスを使用するのでしょうか。他のものを使用できますか?

前もって感謝します

4

4 に答える 4

6

コンストラクターと、場合によってはゲッターを使用する必要があります

class t1{
 public final int a;

 public t1() {
    this(5);
 }
 protected t1(int a) {
    this.a = a;
 }

 public void get(){
    System.out.println(a);
 }
}

class t2 extends t1{
  public t2() {
     super(1);
  }
}

t2 z = new t2();
z.get();

版画1

于 2013-09-18T14:19:12.660 に答える
0

はい、これを行う方法があります。「テンプレートメソッド」と呼ばれるパターンを適用できます。ここに例があります

class Base {

     void someMethod() {
         int value = getValue();

         // calculate something
     }

     protected abstract int getValue();
}

class Derived extends Base {

    int getValue() {
         return 5;
    }
}

getValue()テンプレート メソッドはどこにあり、継承されたクラスの実装に任意のロジックを挿入できます。

于 2013-09-18T14:36:13.957 に答える