我有协议A
。我想创建一个协议B
,以便使用B
扩展一个类型,迫使程序员为A
的所有成员函数提供实现。
当然,这只是核心Java中的接口继承。
我已经看到了这方面的构图方法。这些问题是命名空间被掩盖了。如果A
位于名称空间c.a
中,则在该名称空间中定义所有方法。使用组合,B
的方法在名称空间c.b
中定义。
据推测,名称空间c.b
需要名称空间c.a
。因此,方法的变量会被定义为B
。
如果存在继承自C
的其他协议A
,则会成为问题。当lib客户端命名空间中需要名称空间c.b
和c.c
时会发生什么?其中一组方法变量掩盖了另一组,胜利组不适用于满足失败协议的类型。
如果没有编写自己的协议定义宏并扩展宏,我将如何解决这个问题?