1.接口定义:
接口中方法多个抽象方法,接口中不负责实现方法,方法由派生类实现,接口用interface表示,例如,定义一个person接口,注意:接口中不能包含实例字段,接口中方法,默认为公共抽象方法;
internal interface Iperson
{
// string Name; //接口不能包含实例字段
//string ID; //接口不能包含实例字段
void study(); //接口中方法默认为公共抽象方法
}
定义一个student类,对接口进行实例化,否者会报错,在主函数中实例化stuent类,并打印:
internal class student : Iperson
{
public void study() //接口中抽象方法必须在类中实现
{
Console.WriteLine($"在努力学习" );
}
}
main()
{
student student = new student();
student.study();
}
打印结果:
在努力学习
2.接口和抽象类的区别
1.抽象类可以包括实例字段,构造函数和方法,但接口不能,
可以理解为,接口是对子类对象的约束,但抽象类是子类的模板,举例,人都需要吃饭,睡觉,学生也不例外,该种方式可以通过抽象类进行,英国王室子女生下来必须进行礼仪学习,这个可以通过接口来实现,相当于对王室子女的约束,既必须要学习礼仪.例如,我们定义一个抽象类,由实例化字段,方法和抽象方法.
abstract class Person
{
public int ID; //可实例化字段
public string Name; //可实例化字段
public void Study()
{
console.write(“每个人都要学习”);
}
//抽象方法,只进行声明,不进行实现
public abstract void Having();
}
2.类只能单继承,但接口可以多继承
一个子类可以继承多个接口,接口中方法不必重载,但只能存在一个父类,一个儿子只有一个父亲,但儿子可以有多种个性习惯;代码展示;
internal interface Iperson //接口1
{
void study();
}
internal interface Iman //接口2
{
void Excese();
}
internal class student : Iperson, Iman
{
public void study() //接口中抽象方法必须在类中实现
{
Console.WriteLine($"在努力学习" );
}
public void Excese() //接口2方法
{
Console.WriteLine($"男人要锻炼身体");
}
}
main()
{
student student = new student();
student.study();
student.Excese();
}
输出结果:
在努力学习
男人要锻炼身体
3.单父类和多接口实现
子类只有一个父类,单可以有多个接口,可以通过继承父类和接口满足需求.程序如下;
internal class Human //父类
{
public string Name;
public string Description;
public void Live()
{
Console.WriteLine("人首先要活着");
}
}
internal interface Iperson //接口1
{
void study();
}
internal interface Iman //接口2
{
void Excese();
}
internal class student : Human,Iperson, Iman //子类,继承父类和接口
{
public void study() //接口1中抽象方法必须在类中实现
{
Console.WriteLine($"在努力学习" );
}
public void Excese()// 接口1中抽象方法必须在类中实现
{
Console.WriteLine($"男人要锻炼身体");
}
}
static void Main(string[] args) //主函数入口
{
student student = new student();
student.Name = "张三"; //继承父类的字段
student.Description = "努力的学生"; //继承父类的字段
Console.WriteLine( $"姓名:{student.Name} 身份:{student.Description}" );
student.study(); //接口方法实现
student.Excese(); //接口方法实现
}
打印结果:
姓名:张三 身份:努力的学生
在努力学习
男人要锻炼身体
总结:
子类只可以继承一个父类,单可以继承多个接口,接口中本身定义抽象方法名,抽象类相当于子类的一个模板,继承为子类实现方法.