Я нахожусь в проекте, где у меня есть класс Actor, в него входят методы и элементы данных. Это похоже на абстрактный класс, но я не считаю полезным его абстрактным (все методы реализованы).Способна создать var с защищенным конструктором?
public abstract class Acteur {
/**
* Empêchement d'instancier un acteur
*/
protected Acteur() { }
}
Дело в том, что в тесте, я могу создать экземпляр актера:
import org.junit.Test;
public class ActeurTest {
@Test
public void testActeurConstructeur() {
Acteur acteur = new Acteur();
}
}
Так что мой вопрос: как это может быть возможно? Мне было интересно, что только подклассы могут использовать/переопределять защищенный конструктор?
Благодаря
Может быть вызван из того же пакета. Проверьте здесь: http://stackoverflow.com/questions/215497/in-java-difference-between-default-public-protected-and-private – midor
Но он отмечен как абстракция в фрагменте выше. – aioobe
Когда я пробовал свой код, я получаю сообщение об ошибке: «Acteur» является абстрактным, не может быть создан ». Убедитесь, что вы редактируете правильные файлы, выполняете чистую компиляцию и так далее. Вы не сможете построить такой абстрактный класс. Если вы смущены видимостью вещей, объявленных как «защищенные», посмотрите [эту таблицу] (http://stackoverflow.com/a/33627846/276052). – aioobe