using System; using System.Collections.Generic; using System.Text; //通过接口实现多重继承 namespace interfaceDemo { class Person {//定义实体类 internal int age; internal string name; bool isMale; public Person(int age, string name, bool isMale) {//构造方法 this.age = age; this.name = name; this.isMale = isMale; } public bool IsMale() { return this.isMale; } } interface Teacher//定义接口 { string GetSchool();//接口里的方法都是抽象的 string GetSubject(); } interface Doctor { string GetHospital(); double GetSalary(); } class PersonA : Person, Teacher//继承person类、实现Teacher接口 { public PersonA(int age, string name, bool isMale) : base(age, name, isMale)//派生类调用积累的构造方法 { } public string GetSchool()//实现接口的抽象方法 { return "清华大学"; } public string GetSubject()//实现接口的抽象方法 { return "经济学"; } } class PersonB : Person, Teacher, Doctor//继承person类,同时实现两个接口 { public PersonB(int age, string name, bool isMale) : base(age, name, isMale) { } public string GetSchool() { return "北京大学"; } public string GetSubject()//实现接口的抽象方法 { return "计算机"; } public string GetHospital() { return "北京附属医院"; } public double GetSalary() { return 2000; } } class TestInterface//测试类 { static void Main(string[] args) { PersonA p1 = new PersonA(40, "张三", true); string gender = ""; if (p1.IsMale()) { gender = "男"; } else { gender = "女"; } Console.WriteLine("{0},{1},{2}岁,{3}教师,专业是{4}", p1.name, gender, p1.age, p1.GetSchool(), p1.GetSubject());//调用接口已经实现的方法 PersonB p2 = new PersonB(55, "赵六", false); if (p2.IsMale()) { gender = "男"; } else { gender = "女"; } Console.WriteLine("{0},{1},{2}岁,{3}教师,专业是{4},\n同时也是{5}医生,工资为{6}", p2.name, gender, p2.age, p2.GetSchool(), p2.GetSubject(),p2.GetHospital(),p2.GetSalary()); Console.ReadLine(); } } }
版权声明:本文为iteye_12996原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。