我有一个抽象类Stack
和一个扩展它的类:MyStack
。我需要为MyStack
创建一个副本构造函数。仅传递MyStack
对象还是任何Stack
对象更好?
public MyStack(Stack other)
public MyStack(MyStack other)
我认为,这两种方法都可以使用,因为我可以使用
Stack
中定义的方法来查看和复制所有数据。无论我使用哪种方法,都将复制“堆栈性”。为此,我找不到任何“最佳方法”。是否存在?
最佳答案
如果它们在实现复杂性方面相似,那么您应该选择最通用的一种,即public MyStack(Stack other)
,因为它可以提供更大的灵活性。如果有人想通过MyStack
,那也是可能的。
如果接受Stack
使代码更加复杂,则应该做出平衡的决定...
例如,ArrayList
在its copy constructor中接受Collection
。
关于java - 风格? Java中复制构造函数签名的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22468794/