我有一个关于如何在Java中对两个不同类的对象进行一次方法调用的问题?例如,如果SListNode和DListNode这两个类都想使用相同的方法size()来测量列表的长度。我想只定义一次size方法,而不是在SListNode和DListNode类中明确写出两次。
我想继承是必要的。例如,定义一个包含size()方法的超类Size。 SListNode和DListNode都是Size的子类。但是,以这种方式定义size()方法时需要特定类型的列表。因此,该方法不能同时应用于SListNode和DListNode。
我想知道继承结构应该是什么样的,或者是否有任何标准方法来解决这类问题?我猜有,这就是为什么java有多态性。但是我很难找到......
答案 0 :(得分:2)
您要做的是将方法size()作为父类的方法,例如名为Node的类。
然后使SListNode和DListNode扩展Node。方法size()将被继承,因此您只需要在Node类中实现它。
这是结构:
父类:
public class Node {
//Parent class
//size() method will be inherited by children
public void size(){
//Put implementation of size() here
}
}
孩子们:
public class DListNode extends Node {
//size() method is inherited
// put the rest of your body here
}
public class SListNode extends Node {
//size() method is inherited
// put the rest of your body here
}
希望这有助于:)
答案 1 :(得分:0)
你应该想到不同。 举个例子 : 创建一个抽象类ListNode并在其中放入非特定代码(不要实现列表本身。 实现listNode的size方法。例如,size方法只能读取一个属性(protected int size)
创建SListNode和DListNode类,扩展ListNode并实现特定代码。 请务必更新实施中的size属性。