小编典典

Java力场继承

java

我知道有很多关于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

当然,这只是示例,但是我想做的是在超类中使用一些通用方法,这些方法将使用继承类的字段。用户留言

有什么办法吗?如果不是,那我为什么要使用超类,我还能使用其他任何东西吗?

提前致谢


阅读 284

收藏
2020-11-30

共1个答案

小编典典

是的,有一种方法可以做到这一点。您可以应用称为“模板方法”的模式。这是一个例子

class Base {

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

         // calculate something
     }

     protected abstract int getValue();
}

class Derived extends Base {

    int getValue() {
         return 5;
    }
}

getValue()模板方法在哪里,您可以在继承的类实现中插入任何逻辑。

2020-11-30