1、接口
(1)接口是一种规范、协议,定义了一组具有各种功能的方法(属性、索引器本质是方法)。
(2)接口存在的意义:多态。多态的意义:程序可扩展性。
(3)接口解决了类的多继承的问题。
(4)接口解决了类继承以后体积庞大的问题。
(5)接口与接口之间可以继承,并且可以多继承。
(6)接口中的成员必须不能有实现,接口不能实例化。
(7)接口中的成员不能有访问修饰符,默认Public。(可以用反编译工具查看)
(8)接口中可以有属性、方法、索引器等,但不能有字段。
(9)实现接口的子类必须实现该接口的全部成员,如果不想实现接口中的成员,可以把该成员实现为abstract。
(10)当一个类同时继承了一个类和一个接口,类写在接口前面。
//(6)接口中的成员必须不能有实现,接口不能实例化。 public interface IFly { void Fly(); } public interface ISwim { void Swim(); } //潜水,会潜水的一定会有用 //(5)接口之间可以实现多继承。 public interface IDiving : ISwim { void Diving(); } public class Animal { private string _name; public string Name { get { return _name; } set { _name = value; } } public void Say() { Console.WriteLine("I am " + this.Name + "!"); } } //(10)当一个类同时继承了一个类和一个接口,类写在接口前面。 //(3)接口解决了类的多继承的问题。 //(4)接口解决了类继承以后体积庞大的问题。尽量每个接口只有一个功能 public class Swan : Animal, IFly, ISwim { public void Fly() { Console.WriteLine("I can fly!"); } public void Swim() { Console.WriteLine("I can swim!"); } } //(9)实现接口的子类必须实现该接口的全部成员,如果不想实现接口中的成员,可以把该成员实现为abstract。 public abstract class Amphibians : Animal, IFly, ISwim { public abstract void Fly(); public abstract void Swim(); } public class WildDuck : Amphibians { public override void Fly() { Console.WriteLine("I can fly!"); } public override void Swim() { Console.WriteLine("I can swim!"); } }
本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/tq1226112215/
欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。