【发布时间】:2015-07-19 04:27:45
【问题描述】:
我创建了一个接口和一个堆栈。现在我可以通过该接口的引用或直接调用堆栈。我无法理解为什么我应该采取参考路线。 我所指的书说它的运行时实现,所以它更好。谁能解释一下
【问题讨论】:
-
你需要了解动态多态性。最好贴一些伪代码,而不是用简单的英语解释。
标签: java runtime compile-time
我创建了一个接口和一个堆栈。现在我可以通过该接口的引用或直接调用堆栈。我无法理解为什么我应该采取参考路线。 我所指的书说它的运行时实现,所以它更好。谁能解释一下
【问题讨论】:
标签: java runtime compile-time
我不确定你所指的实际代码,但使用接口的好处是这样的。
interface Stack {
void push (T x);
T pop ();
}
class IntegerStack implements Stack<Integer> {
}
如您所见,我们可以为每种类型准备 Stack 以接受每种需要的类型,但也可以通过相同的接口访问它。实际上,这个决定,通过接口调用哪个实现方法,是由编译时做出的,所以我不确定它是否能回答你的问题。
如果你知道你只坚持一个实现,那么使用接口是没有用的。 (但很少有软件被开发为实际用途)
顺便说一句,如果您正在实施 Stack,我相信使用更知名的 interface 比自己实施更好。 ;)
【讨论】:
public class stackdemo { public static void main(String args[]) { shell1 s; //Interface A ob1= new A(); B ob2= new B(); s=ob1; ob1.fixed(10); ob2.init(15); s.push(5); // Calling via interface s.push(3); s.pop(); ob2.push(11);// Direct calling through object ob2.pop(); } }
A 堆栈或B 堆栈。 (从你的例子,它shell1)