phoebird 发表于 2013-2-4 23:31:32

C# 通过接口实现多重继承

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();                }    }} 
页: [1]
查看完整版本: C# 通过接口实现多重继承