能够用受保护的构造函数创建一个var吗?

时间:2016-11-30 08:51:49

标签: java constructor protected

我在一个项目中,我有一个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 个答案:

答案 0 :(得分:1)

  

对于这个问题,您想知道只有子类可以   使用/覆盖受保护的构造函数。

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 可以在同一个包中访问。

select c1.*, s1.name, v1.visits1, v2.visits2
from clients c1
left join salesagents s1
  on c1.salesagents_id = s1.id
left join
    (select clients_id, count(distinct id) as visits1
    from visits
    group by clients_id) v1
  on v1.clients_id = c1.id
left join
    (select vx.clients_id, count(distinct vx.id) as visits2
    from visits vx
    where vx.date >FROM_UNIXTIME(UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH)))
    group by vx.clients_id) v2
  on v2.clients_id = c1.id

hide()