另一种实现方式抽象在C#中,就是接口。
一个interface
是一个完全“抽象类”,它只能包含抽象方法和属性(带有空主体):
// interface
interface Animal
{
void animalSound(); // interface method (does not have a body)
void run(); // interface method (does not have a body)
}
在接口的开头以字母 "I" 开头被认为是一种很好的做法,因为这样可以让您自己和其他人更容易记住它是一个接口而不是一个类。
缺省情况下,接口的成员有abstract
和public
。
笔记:接口可以包含属性和方法,但不能包含字段。
要访问接口方法,接口必须由另一个类"implemented"(有点像继承)。要实现接口,请使用:
符号(就像继承一样)。接口方法的主体由"implement" 类提供。请注意,您不必使用override
实现接口时的关键字:
// Interface
interface IAnimal
{
void animalSound(); // interface method (does not have a body)
}
// Pig "implements" the IAnimal interface
class Pig : IAnimal
{
public void animalSound()
{
// The body of animalSound() is provided here
Console.WriteLine("The pig says: wee wee");
}
}
class Program
{
static void Main(string[] args)
{
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
}
}
abstract
和public
1)实现安全性——隐藏某些细节,只显示对象(界面)的重要细节。
2)C#不支持"multiple inheritance"(一个类只能继承一个基类)。然而,它可以通过接口来实现,因为类可以实施多个接口。笔记:要实现多个接口,请用逗号分隔它们(请参见下面的示例)。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!