比方说,我有一个接口“内部”,和国际米兰有一个方法如何指定方法的返回类型为调用该方法的对象的类型?
Inter someMethod();
我怎么可以指定返回对象的类型必须是同在该方法被调用的对象? 因此,如果我有两个实现Inter的类“C1”和“C2”,如果C1的一个实例调用someMethod(c1.someMethod()
),结果将是C1的一个实例,而如果C2的一个实例调用someMethod,结果将是C2的实例。
参数如何?如果国际米尔有第二种方法
void someMethod2(Inter inter)
我该如何指定该参数必须是与调用该方法的对象相同的类的实例?
这是诀窍。有一件事: “公共类C1实现国际” 我可以强迫在这里,“C1”不能实现Inter 以外的其他Inter吗? –
user2460978
这是设计。如果您尝试,您会收到编译器错误:C1实现Inter,Inter 但是,如果您的意思是防止:C1实现Inter 我不认为这是可能的。 –
我的意思是如果您尝试使用“C1实现Inter”,或者通常“X实现Inter ”,则会出现编译错误。因为使用这种方法,接口本身不会强制someMethod()的返回类型必须与调用该方法的对象的类型相同。 –
user2460978