我有多個java文件,我正在使用許多相同的方法。截至目前,當我更新任何方法時,我將不得不在其他文件中找到該方法並手動更新它們。我想知道如何通過從「主文件」中實現方法來實現這一點,該文件將保存我普遍使用的許多不同方法的主體。在我的研究中,我認爲我可以通過接口來做到這一點,但是當我創建一個接口時,它不允許我添加一個主體...因此,顯然我在那裏做了錯誤或錯誤地使用了接口。無論如何,實現這一目標最好的是什麼?從類中的另一個文件實現方法?
回答
如果這些類是相關的並且存在一個父子關係,那麼您可以在您的父類(也許是抽象的)中擁有一個方法,該方法將包含此通用代碼。
如果類是不相關的,但它們仍然有一些共同的代碼,那麼將通用代碼移動到一個可用類是個好主意。
只有看到代碼才能提供更多評論。
嗯,是的,我試圖將它移動到一個「工具類」,併成功地在所有其他文件中實現該類,以便可以調用「工具類」方法,而不必將整個主體寫入不同的文件。那麼我該怎麼做...?這實際上是個問題...... – user2510325
@ user2510325如果您正在實施實用程序類,那麼只需將所有這些方法制作爲公共靜態。在所有其他需要該方法的類中,以靜態的方式調用它,就像Utilityclass.commonMethod()一樣。 –
這聽起來像你需要使用父(可能抽象)和子類。
父類:
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,它將自動更改您的子類將提供的輸出。
你的父母不是這裏的抽象類 –
@Ruchi我知道,這是打算。在OP是初學者並試圖使用代碼的情況下,如果它是抽象的並且他試圖在將來實例化它,可能會使他感到困惑。它不一定是抽象的。這就是爲什麼我在括號之間加上「可能抽象」的原因。 – JREN
因爲你已經標記了「多重繼承」(類的問題),我認爲你發現在Java中是不可能的,並且在你的層次結構中使用抽象類沒有意義。
你可以做的是利用委託技術: 創建一個類類A並將所有常用方法放在那裏。在B和C類中,您可以創建A類的實例並使用該類的所有方法。 實施例:
A delegate = new A();
delegate.someMethod();
進一步瞭解委託模式here。
- 1. 如何從Java中的另一個類實現start(Stage)方法?
- 2. 如何從另一個cclayer實現文件安排方法
- 3. 從另一個類文件中訪問一個方法?
- 4. 頭文件中的類方法實現
- 5. 從另一個類文件向類中添加方法
- 6. 上調用的類的實例的方法,從另一個類(或文件)
- 7. PHP:從另一個類中檢索類方法的實例
- 8. 從另一個文件中調用另一個類的方法C#
- 9. 如何從Python中的另一個文件調用類方法?
- 10. 從CSHTML文件中調用另一個類的方法
- 11. Python:從另一個文件導入類並實現函數
- 12. 如何從同一類的另一個實例方法調用實例方法?
- 13. 從java中的另一個類更改實例的方法
- 14. 從主類中實例化的另一個類訪問主類實例方法
- 15. 如何從另一個類中調用用戶實現的方法?
- 16. 從同一類中的另一種方法在類實例中調用方法
- 17. 從Python 2.7中的另一個類方法調用類方法
- 18. 從另一個方法調用文件
- 19. 從另一個文件調用方法
- 20. 使用另一個類中的方法從一個類獲取實例變量?
- 21. 實現另一個類中的對象
- 22. Javascript:從同一類的另一個方法訪問類方法
- 23. 如何從Titanium中的另一個.js文件實現函數
- 24. 從另一個類實例(調用方法)獲取一個類實例
- 25. 如何從另一個類中的一個類調用方法
- 26. 如何從一個類中調用另一個類的方法?
- 27. 如何從另一個類中的一個類調用方法
- 28. 將一個類的方法分配給另一個類的另一個實例
- 29. 從另一個類調用類方法
- 30. 從另一個類使用類方法
考慮使用ab抽象類代替接口。關於這個主題的很好的閱讀:[鏈接](http://stackoverflow.com/q/761194/335858)。 – dasblinkenlight