通过方法继承实现Java代码重用

通过方法继承实现Java代码重用,java,inheritance,methods,reusability,Java,Inheritance,Methods,Reusability,我正在寻找一种在Java中实现代码重用的方法。 许多类都应该有自己的(静态)数据。 它们都应该有一个通用的方法,但该方法应该对它们自己的数据进行操作。 下面的代码只返回“基本数据”行,而所需的输出是 基础数据、1以上数据、2以上数据等 在Java中实现这一点的正确方法是什么 public class Base{ static private String data="BASE DATA"; static void printData(){System.out.println(data);

我正在寻找一种在Java中实现代码重用的方法。 许多类都应该有自己的(静态)数据。 它们都应该有一个通用的方法,但该方法应该对它们自己的数据进行操作。 下面的代码只返回“基本数据”行,而所需的输出是 基础数据、1以上数据、2以上数据等

在Java中实现这一点的正确方法是什么

public class Base{
  static private String data="BASE DATA";
  static void printData(){System.out.println(data);}

  public static void main(String[] args){
    Base.printData();
    Above1.printData();
    Above2.printData();
    Above3.printData();
  }

}//Base

class Above1 extends Base {
  static private String data="Above1 DATA";
}//Above1

class Above2 extends Base {
  static private String data="Above2 DATA";
}//Above2

class Above3 extends Base {
  static private String data="Above3 DATA";
}//Above3
使用命令模式(如果愿意,也可以使用访问者)

该功能将作为传递给每个类的命令对象来实现


然后,该类将执行该命令,并将其静态数据传递给该命令。

您不能直接执行。检查以下提示:
数据
为什么需要是静态的?为什么不让它成为一个可以被子类重写的实例变量呢?您总是可以在某个地方将实际字符串定义为常量,然后将实例变量设置为这些常量。如果
data
是一个实例变量,
1
2
3
可能都是同一类的实例,因为它们在结构和功能上都是相同的。看起来pksiazek建议的解决方法对我来说很有效。数据需要是静态的(这只是现实问题的一个例子)。看起来命令模式可能不起作用有两个原因:1。每个接收器类都必须实现功能2。命令接口,作为一个接口,不允许静态抽象方法(但我听说在Java8中改变了这一点)。