我正在使用多个java文件,这些文件使用了许多相同的方法。截至目前,当我更新任何方法时,我将不得不在其他文件中找到该方法并手动更新它们。我想知道如何通过实现"主文件"中的方法来实现这一点。这将保存我普遍使用的许多不同方法的主体。在我的研究中,我认为我可以通过接口来做到这一点,但是当我创建一个接口时,它不允许我添加一个体...所以,显然我在那里做错了或者使用接口不正确。无论如何,实现这一目标最好的是什么?
答案 0 :(得分:0)
如果这些类是相关的并且存在父子关系,那么您可以在父类中使用一个方法(可能是抽象的),这将保留这个公共代码。
如果类不相关但仍然有一些共同的代码,那么将公共代码移动到一个优秀的类可能是一个好主意。
只有看到代码才能提供更多评论。
答案 1 :(得分:0)
听起来你需要使用父类(可能是抽象的)和子类。
家长班:
public class Parent {
public void method1() {
System.out.println("You can call this method from Child");
}
}
儿童班:
public class Child extends Parent {
// Because you're extending Parent, it will allow you to use the method in your parent class.
public void method2() {
System.out.println("You can't call this method from Parent");
}
}
现在,如果你打电话给你的方法,你可以这样做:
Parent parent = new Parent();
parent.method1();
Child child = new Child();
child.method1();
child.method2();
输出:
"You can call this method from Child"
"You can call this method from Child"
"You can't call this method from Parent"
如果您现在在父类中编辑method1,它将自动更改您的子类将提供的输出。
答案 2 :(得分:0)
因为你已经标记了“多重继承”(类)的问题,我认为你发现在Java中是不可能的,并且使用抽象类在你的层次结构中没有意义。
您可以做的是利用委派技术: 创建一个类A类并将所有常用方法放在那里。在B和C类中,您可以创建A类的实例并使用该类的所有方法。 例如:
A delegate = new A();
delegate.someMethod();
详细了解委托模式here。