小编J B*_*vin的帖子

C# Diamond-继承(接口实现)

如果一个类从两个单独的接口实现一个接口,它的行为是否与仅实现一次相同?

例子:

public interface IAnimal { /* ... */ }
public interface IFullAnimal : IAnimal { /* ... */ }

public interface IBear : IAnimal { /* ... */ }
public interface IFullBear : IBear, IFullAnimal { /* ... */ }

// and implementing IFullBear:
public class FullBear : IFullBear { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

上面,FullBear实现了IAnimalIFullAnimalIBearIFullBear。这是否会引入有关 IAnimal 实现的任何奇怪行为,因为两者IFullAnimalIBear没有提供有关实现的任何信息IAnimal(因为该语言不允许这样做)。

c# inheritance interface-implementation diamond-problem

2
推荐指数
1
解决办法
2820
查看次数