c#中的接口
来源:互联网 发布:宿州影楼美工招聘兼职 编辑:程序博客网 时间:2024/06/02 01:16
一、接口定义
提供了一组方法声明的统一命名(不提供实现,实现是继承他的类的事)。
二、接口的使用
2.1什么时候使用接口
当你想要用类做多重继承的时候,就要用接口(类不支持多重继承)。
实例1:狗继承动物
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ public abstract class Animal { public void EatFood() { Console.WriteLine("我能吃东西"); } } public class Dog : Animal { public Dog() { Console.WriteLine("我是狗"); } } class Program { static void Main(string[] args) { Dog dog = new Dog(); dog.EatFood(); } }}
实例2:特殊的狗(会表演)--接口
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ public abstract class Animal { public void EatFood() { Console.WriteLine("我能吃东西"); } } public class Dog : Animal { public Dog() { Console.WriteLine("我是狗"); } } //定义表演接口 public interface IAnimalShow { void Show(); } //定义导盲接口 public interface IAnimalHelpPeople { void Help(); } //定义特殊狗类(表演) public class SpecialDog : Animal, IAnimalShow,IAnimalHelpPeople { public SpecialDog() { Console.WriteLine("我是特殊的狗"); } 隐式接口 public void Show() { Console.WriteLine("我会表演"); } class Program { static void Main(string[] args) { Dog dog = new Dog(); dog.EatFood(); SpecialDog s_dog = new SpecialDog(); s_dog.Show(); s_dog.Help(); } }}
2.2显式接口和隐式接口的对比
1.隐式:类和接口都可以访问接口中的方法。显式:接口方法只能通过接口来完成,因此接口方法默认为私有
2.单个接口推荐使用隐式接口
3.实现多个接口推荐用显式接口
实例3:显式接口与隐式接口
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ public abstract class Animal { public void EatFood() { Console.WriteLine("我能吃东西"); } } public class Dog : Animal { public Dog() { Console.WriteLine("我是狗"); } } //定义表演接口 public interface IAnimalShow { void Show(); } //定义能够帮助人类狗的接口 public interface IAnimalHelpPeople { void Help(); } //定义特殊狗类(表演) public class SpecialDog : Animal, IAnimalShow,IAnimalHelpPeople { public SpecialDog() { Console.WriteLine("我是特殊的狗"); } //显式接口 void IAnimalShow.Show() { Console.WriteLine("我会表演"); } void IAnimalHelpPeople.Help() { Console.WriteLine("我能帮助人"); } } class Program { static void Main(string[] args) { Dog dog = new Dog(); dog.EatFood(); SpecialDog s_dog = new SpecialDog(); IAnimalShow idogshow = (IAnimalShow)s_dog; idogshow.Show(); IAnimalHelpPeople idoghelp = (IAnimalHelpPeople)s_dog; idoghelp.Help(); Console.Read(); } }}
三、接口与抽象类
3.1对比
1.定义:抽象类使用,接口使用。他们都不能实例化。
2.抽象类可以包含虚方法,非抽象方法和静态成员。接口只能定义方法,不能实现。
3.抽象类不能够实现多继承,接口可以多继承。
4.抽象类:类实现继承:子类属于基类 is关系(A是B)。类实现接口:CAN-DO关系,即类能够实现这个接口。(A能做B)
参考:http://www.cnblogs.com/zhili/
阅读全文
0 0
- C#中的接口
- C#中的接口
- C#中的接口
- C#中的接口(收藏)
- C#中的接口
- C#中的接口
- 谈谈C#中的接口
- C#中的接口分析
- C#中的接口
- C#中的接口
- C#中的接口
- C#中的接口
- C#中的接口
- 谈谈C#中的接口
- c#中的接口
- c#中的接口
- 谈谈C#中的接口
- C#中的接口
- Kotlin 创建 main 函数
- 000047:输出1~20之间的奇数,使用continue跳出循环
- Android APP优化
- 各类网站部署SSL证书
- MyBatis与Spring整合细节的优化
- c#中的接口
- 解决jsp页面路径访问图片的乱码问题
- hdoj 1030 Delta-wave(3坐标)
- aa
- ubuntu python install oracle module cx_Oracle
- 个人笔记(第四篇)
- You may need to configure your browser or application to trust the Charles Root Certificate.
- WPF中的TreeView入门
- IO流-字符流