代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp4
{
public interface Person //每个人都会有的属性单独放在一个接口中
{
string Id { get; set; }
string Name { get; set; }
char Sex { get; set; }
}
public interface IStudent
{
//接口成员一定是公开的,不能有public等访问修饰符!
void Answer();//接口类成员不能有实现
}
public interface ITeacher
{
//接口成员一定是公开的,不能有public等访问修饰符!
void Answer();//接口类成员不能有实现
}
class Studyer:IStudent,ITeacher,Person //必须将继承的接口成员全部实现
{
string id;
string name;
char sex;
//以上声明私有字段
public string Id //公开访问共有属性
{
get { return id; }
set { id = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public char Sex
{
get { return sex; }
set { sex = value; }
}
void IStudent.Answer() //不同接口同名函数的调用方法用.操作符
{
Console.WriteLine($"学生\t学号: {Id}\t姓名:{Name}\t性别:{Sex}");
}
void ITeacher.Answer() //不同接口同名函数的调用方法用.操作符
{
Console.WriteLine($"老师\t学号: {Id}\t姓名:{Name}\t性别:{Sex}");
}
}
class Program
{
static void Main(string[] args)
{
Studyer Stu1 = new Studyer();
Stu1.Id = "17721528";
Stu1.Name = "李药师";
Stu1.Sex = 'M';
IStudent s1= Stu1;//将对象赋值给接口,由接口实现方法
s1.Answer();
Studyer Stu2 = new Studyer();
Stu2.Id = "17721526";
Stu2.Name = "王铁柱";
Stu2.Sex = 'F';
ITeacher s2 = Stu2;
s2.Answer();
}
}
}
输出结果:
希望对大家理解接口有帮助,谢谢!