程序中的子类有什么问题?

时间:2016-03-27 19:53:57

标签: java inheritance

我最近创建了一个Deck类(这是超类),我正在尝试创建一个测试器方法来查看我的类是否有效。 这是我的甲板课程:

import java.util.List;

/**
* This is a class that tests the Deck class.
*/
public class DeckTester extends Deck
{
   public static List<Card> cards;

   public DeckTester(String[] ranks, String[] suits, int[] values) 
   {
        super(ranks, suits, values);
   }

  /**
  * The main method in this class checks the Deck operations for    consistency.
  * @param args is not used.
  */
  public static void main(String[] args) 
  {

  }
}

我无法弄清楚如何将DeckTester类(它是子类)组合在一起。到目前为止,我有以下内容:

if( condition ){
    arr[*index_ptr] = tid;
    (*index_ptr)++
}

我还有一个功能齐全的卡片类。我只是不确定如何检查甲板课程。

2 个答案:

答案 0 :(得分:1)

我可以立即说出tested课程和tester课程由composition而非inheritance放在一起。

所以你必须:

  1. tested课程导入tester
  2. 创建tested
  3. 的实例
  4. 执行tested object
  5. 的一些逻辑
  6. 检查它是否符合您的期望,例如JunitTestNG

答案 1 :(得分:1)

我同意Rudziankoŭ,使用测试类使用合成会更容易。

我不会详细介绍您可以使用的各种设置,但这只是一个例子(在这里使用JUnit)

public class DeckTester {

     /**
         Check if deck size is being instantiated correctly
     */
     @Test
     public void testDeckSize() {

         String[] ranks = new String[1]; // Not sure what this should be
         String[] suits = new String[4];
         int[] vals = new int[12];
         Deck deck = new Deck(ranks, suits, vals);
         assert deck.size() == 52;
     }

}