0
我在一个项目中,我有一个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是抽象的;不能实例化”。确保你正在编辑正确的文件,做一个干净的编译等等。你不应该能够构建这样的抽象类。如果你对声明为'protected'的东西的可见性感到困惑,请查看[this table](http://stackoverflow.com/a/33627846/276052)。 – aioobe