Умеет создавать var с защищенным конструктором?

Я нахожусь в проекте, где у меня есть класс Actor, с методами и членами данных в нем. Это похоже на абстрактный класс, но я не нахожу полезным устанавливать его абстрактным (все методы реализованы).

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();
    }
}

Поэтому мой вопрос: как это возможно? Мне было интересно, что только подклассы могут использовать / переопределить защищенный конструктор?

Спасибо

1 ответ

Решение

На вопрос, который вас интересует, что только подклассы могут использовать / переопределять защищенный конструктор.

protected можно получить доступ в том же пакете.

Access Modifiers  In class     Same package    Anywhere but subclasses    Outside package & non relate
Private               Y             N                   N                          N
Default               Y             Y                   N                          N
Protected             Y             Y                   Y                          N
Public                Y             Y                   Y                          Y

Модификаторы доступа к Java

Другие вопросы по тегам