我有一个抽象类Stack和一个扩展它的类:MyStack。我需要为MyStack创建一个副本构造函数。仅传递MyStack对象还是任何Stack对象更好?

public MyStack(Stack other)
public MyStack(MyStack other)


我认为,这两种方法都可以使用,因为我可以使用Stack中定义的方法来查看和复制所有数据。无论我使用哪种方法,都将复制“堆栈性”。

为此,我找不到任何“最佳方法”。是否存在?

最佳答案

如果它们在实现复杂性方面相似,那么您应该选择最通用的一种,即public MyStack(Stack other),因为它可以提供更大的灵活性。如果有人想通过MyStack,那也是可能的。

如果接受Stack使代码更加复杂,则应该做出平衡的决定...

例如,ArrayListits copy constructor中接受Collection

关于java - 风格? Java中复制构造函数签名的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22468794/

10-10 19:22