Не могу объявить абстрактный метод закрытым

Я хочу сделать это, но не могу. Вот мой сценарий и рациональный. У меня есть абстрактный класс для тестовых случаев, который имеет абстрактный метод, называемый test (). Метод test () должен быть определен подклассом; это должно быть реализовано с помощью логики для определенного приложения, такого какCRMAppTestCase extends CompanyTestCase, Я не хочу, чтобы метод test () вызывался напрямую, я хочу, чтобы суперкласс вызывал метод test (), в то время как подкласс может вызывать метод, который вызывает это (и выполняет другую работу, такую ​​как установка текущего). дата-время непосредственно перед выполнением теста, например). Пример кода:

public abstract class CompanyTestCase {
    //I wish this would compile, but it cannot be declared private
    private abstract void test();

    public TestCaseResult performTest() {
        //do some work which must be done and should be invoked whenever 
        //this method is called (it would be improper to expect the caller
        // to perform initialization)
       TestCaseResult result = new TestCaseResult();
       result.setBeginTime(new Date());
       long time = System.currentTimeMillis();
       test(); //invoke test logic
       result.setDuration(System.currentTimeMillis() - time);
       return result;
    }
}

Затем продлить это ....

public class CRMAppTestCase extends CompanyTestCase {

    public void test() {
        //test logic here
    }

}

Тогда называть это ....

TestCaseResult result = new CRMAppTestCase().performTest();

Ответы на вопрос(7)

Ваш ответ на вопрос