我目前正在嘗試擴展
正如您在紅色箭頭中看到的那樣,我需要從兩個類進行擴展。
我無法更改 WPI 框內的任何內容,并且requires方法 fromICommand需要一些函式 fromCommandBase所以我不能在ICommand.
我該如何解決這個問題?
如果你想嘗試一些東西,這里是我的 github repo。
uj5u.com熱心網友回復:
如果我理解正確的話,您希望讓您的自定義類(SequentialCommandGroup、ParallelCommandGroup)從庫類擴展,但也希望有您自己的“命令”部分實作。
你當然不能在 Java 中擁有多重繼承,但我認為你可以在這里使用代理模式。
您的類仍會從 Library 類繼承,但 ICommand 介面的實作可以委托給 Command 物件。
例子:
public class MyParallelCommandGroup extends ParallelCommandGroup implements ICommand {
private Command commandProxy;
public MyParallelCommandGroup() {
// instantiate commandProxy here, or inject it as constructor param
}
@Override
public void requires() {
commandProxy.requires();
}
}
您甚至可以將整個 Command 類提取到一個介面并在您的代理類中實作它。我不確定這是否涵蓋您的用例,但也許它會幫助您找到合適的解決方案。
uj5u.com熱心網友回復:
使用Interface因為java is not supports Multiple Inheritance。介面是指定要實作的類的行為的抽象型別。因為它們是抽象的,所以介面不包含對其行為的詳細說明。相反,這些類提供了介面行為的具體實作。
介面有許多定義特性:
與類不同,您不實體化介面。相反,類實作介面
介面只包含公共常量定義和方法頭
介面只能擴展其他介面,不能擴展類
介面可以擴展多個介面,類可以實作多個介面
閱讀有關繼承的更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/395885.html
上一篇:我在C中的結構鏈表有問題
