C# 类是否必须直接实现接口

C# 类是否必须直接实现接口,c#,asp.net,actionscript-3,interface,C#,Asp.net,Actionscript 3,Interface,快速提问。类是否必须直接实现接口才能被接受,或者它可以是实现它的父类的子类 因此,如果我将一个子对象传递给一个只接受IOObject的方法,但子类父类实现IOObject。是否接受子对象?如果父对象满足接口类型的IS-A,则子对象也会满足。子级不需要实现接口。如果父级满足接口类型的IS-A,子级也会满足。孩子不需要实现接口。我不太熟悉IS-A这个词,但我想我明白你的意思。鹦鹉是鸟,鸟是动物。。。因此,如果您在Animal中实现了一个接口方法,并且可访问性设置为除private之外的任何对象,那么

快速提问。类是否必须直接实现接口才能被接受,或者它可以是实现它的父类的子类


因此,如果我将一个子对象传递给一个只接受IOObject的方法,但子类父类实现IOObject。是否接受子对象?

如果父对象满足接口类型的IS-A,则子对象也会满足。子级不需要实现接口。

如果父级满足接口类型的IS-A,子级也会满足。孩子不需要实现接口。

我不太熟悉IS-A这个词,但我想我明白你的意思。鹦鹉是鸟,鸟是动物。。。因此,如果您在Animal中实现了一个接口方法,并且可访问性设置为除private之外的任何对象,那么Bird对象和Parrot对象都可以访问该方法,因此它们也实现了该接口。@numerical25-IS-A表示满足Liskov替换原则的“继承”;HAS-A表示“组合”。据我所知,接口中的方法总是公共的。Bird和Parrot对象要么调用其父动物实现的方法,要么用它们自己的行为覆盖该方法。我不喜欢术语IS-A,但我想我明白你的意思。Parrot是一只鸟,而Bird是一只动物。。。因此,如果您在Animal中实现了一个接口方法,并且可访问性设置为除private之外的任何对象,那么Bird对象和Parrot对象都可以访问该方法,因此它们也实现了该接口。@numerical25-IS-A表示满足Liskov替换原则的“继承”;HAS-A表示“组合”。据我所知,接口中的方法总是公共的。Bird和Parrot对象将调用由其父动物实现的方法,或使用自己的行为覆盖该方法。