我在一个项目中,我有一个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();
}
}
所以我的问题是:怎么可能呢?我想知道只有子类可以使用/覆盖受保护的构造函数吗?
由于
答案 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