我知道有很多关于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
5
当然,这只是示例,但是我想做的是在超类中使用一些通用方法,这些方法将使用继承类的字段。用户留言
有什么办法吗?如果不是,那我为什么要使用超类,我还能使用其他任何东西吗?
提前致谢
是的,有一种方法可以做到这一点。您可以应用称为“模板方法”的模式。这是一个例子
class Base { void someMethod() { int value = getValue(); // calculate something } protected abstract int getValue(); } class Derived extends Base { int getValue() { return 5; } }
getValue()模板方法在哪里,您可以在继承的类实现中插入任何逻辑。
getValue()