扩展界面

时间:2015-05-27 17:25:50

标签: java interface extends

我下载的代码的功能如下:

public class MDP<S, A extends Action> implements MarkovDecisionProcess<S, A> {
//some code...blah blah blah...
}

SA应该是某种typeActioninterface

在我的代码中,我想使用给定的类MDP。因此,我必须定义SA;我将S定义为某个类,但我不知道如何定义A ...它不是一个类,它不是一个接口。应该是什么样的?

谢谢:)

3 个答案:

答案 0 :(得分:3)

“A”类型是一个实现扩展Action的接口的类。

答案 1 :(得分:1)

代码

public class MDP<S, A extends Action> implements MarkovDecisionProcess<S, A> {
  //some code...blah blah blah...
}

SA是类型。它们可以指代接口或类。字母标识是任意的。它们可以是任何字母。这同样有效

public class MDP<Q, Z extends Action> implements MarkovDecisionProcess<Q, Z> {
  //some code...blah blah blah...
}

它只是说,“类MDP是一个参数化类,其参数为SA,其中AAction的某个子类,它实现了接口MarkovDecisionProcess<S,A>SA可能是也可能不是同一类型。“

当您为类提供类型参数时,可以缩小类型的特异性。在这种情况下,S保持不变(就特异性而言),但您将第二个参数缩小到Action的某个实例。

可以在接口声明上使用这些类型。然后可以将它们留在实例上。

public interface MarkovDecisionProcess<S,V extends Action>{}

public class MDP implements MarkovDecisionProcess{}

阅读部分official documentation可能会让您受益匪浅。

答案 2 :(得分:1)

关于MDP文档&#34; Action&#34;是一个界面:

public interface Action
Describes an Action that can or has been taken by an Agent via one of its Actuators.

查看文档:{​​{3}}