在 C# 或 Java 中,如何创建一个只能使用其实现的接口(interface)实例化的类?
很抱歉,如果之前有人问过这个问题。
编辑:抱歉让您感到困惑,这个问题只是出于好奇而问的:
例如我有:
interface iA
{
int addNum();
}
interface iB
{
int minusNum();
}
class A implements iA, iB
{
private int A;
public int addNum()
{
A += 10;
return A;
}
public int minusNum()
{
A -= 10;
return A;
}
}
class TestIface
{
public static void main(String args[]) {
A testA = new A();
iA testiA = new A();
iB testiB = new A();
testA.minusNum(); // No error, it has access to both methods
testA.addNum();
testiA.minusNum();//ERROR
testiA.addNum();
testiB.minusNum();
testiB.addNum();//ERROR
}
}
我想知道是否有一种方法可以阻止开发人员只创建 testA 并访问这两个方法。
最佳答案
如何将构造函数设为私有(private)?
class A implements iA
{
public int returnNum()
{
return 10;
}
private A(){}
public static iA getInstance(){
return new A();
}
}
关于java - 如何制作只能通过接口(interface)访问的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25825028/