using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 使用接口实现多重继承 { public interface IPeople { string Name { get; set; } string Sex { get; set; } } public class Myclass { public void Show() { Console.WriteLine("The info of a people: "); } public virtual void Say() { Console.WriteLine("Can I got the offer from MS?"); } } //多继承时候,必须类写在前面,接口写在后面 class Program:Myclass,IPeople { string name = ""; string sex = ""; public string Name { get { return name; } set { name = value; } } public string Sex { get { return sex; } set { sex = value; } } //使用new关键字,隐藏基类方法。实质上就是重写基类的非虚方法 public new void Show() { Console.WriteLine("I'm steven"); } //使用override关键字,重写基类虚方法 public override void Say() { base.Say(); Console.WriteLine("I hope I can get it in a week"); } static void Main(string[] args) { Program myp = new Program(); //使用派生类对象实例化接口,多态----一个接口,多种方法 IPeople ipeople = myp; ipeople.Name = "Here we"; ipeople.Sex = "go!"; myp.Show(); myp.Say(); Console.WriteLine(ipeople.Name + " " + ipeople.Sex); Console.ReadLine(); } } }