从类中的另一个文件实现方法?

时间:2013-06-27 11:13:09

标签: java eclipse class methods multiple-inheritance

我正在使用多个java文件,这些文件使用了许多相同的方法。截至目前,当我更新任何方法时,我将不得不在其他文件中找到该方法并手动更新它们。我想知道如何通过实现"主文件"中的方法来实现这一点。这将保存我普遍使用的许多不同方法的主体。在我的研究中,我认为我可以通过接口来做到这一点,但是当我创建一个接口时,它不允许我添加一个体...所以,显然我在那里做错了或者使用接口不正确。无论如何,实现这一目标最好的是什么?

3 个答案:

答案 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