C# 接口 与 类的 区别

问题描述

C# 接口 与 类的 区别

C# 接口与类的作用的区别,什么时候该用接口,什么时候改用类。比如,不用知道具体的子类是什么,调用通用的接口,这个用基类实现也行,用接口实现也行。PS:这里不用讨论基本概念,想从最能突出各自作用的一些点做更深刻的说明。

解决方案

C#不允许多继承,比如asp.net的page,winforms里的control form,已经有一个基类了,就不能再继承一个抽象类,只能使用接口。
接口不能包含代码实现、私有字段,它提供了方法的约定,用来规范相同或者相似功能的一组类。

解决方案二:

对于支持多继承的语言,比如C++,就没有原生的接口语法,在这些语言中,的确抽象类扮演了接口的角色。可以说从面向对象的设计的角度(注意不是clr的实现的角度),接口是一种特殊的抽象类。

解决方案三:

接口就是实现了某些功能的函数
类里面包含成员变量和方法,而方法就可以理解为是接口

解决方案四:

类里面包含成员变量和方法,而方法就可以理解为是接口,所谓接口就是实现了某些功能的函数,微软只提供了函数的调用方法,也就是声明,而实现封装了起来你看不到,这些就是接口,如果你要封装某种功能,那封装成类就可以了

解决方案五:

---------------------- <a href="http://edu.csdn.net&quot;target=&quot;blank&quot;&gt;ASP.Net+Android+IOS开发&lt;/a&gt;、&lt;a href="http://edu.csdn.net&quot;target=&quot;blank&quot......
答案就在这里:黑马程序员.C#中的接口和类的区别

时间: 2024-08-07 02:18:00

C# 接口 与 类的 区别的相关文章

JDK和CGLIB生成动态代理类的区别

 关于动态代理和静态代理 当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁--代理对象. 按照代理对象的创建时期不同,可以分为两种: 静态代理:事先写好代理对象类,在程序发布前就已经存在了: 动态代理:应用程序发布后,通过动态创建代理对象. 静态代理其实就是一个典型的代理模式实现,在代理类中包装一个被代理对象,然后影响被代理对象的行为,比较简单,代码就不放了. 其中动态代理又可分为:JDK动态代理和CGLIB代理. 1.JDK动态代理

JAVA集合框架之List接口实现类

上一篇博客<JAVA集合框架之Set接口实现类>中介绍了Set接口的相关实现类,这一篇将介绍List接口的实现类. java.util.ArrayList< E > ArrayList有点类似于数组,相比较于数组而言,ArrayList可以动态的更改元素个数,相对于数组较为灵活. 每个 ArrayList 实例都有一个容量.该容量是指用来存储列表元素的数组的大小.它总是至少等于列表的大小.随着向 ArrayList 中不断添加元素,其容量也自动增长.并未指定增长策略的细节,因为这不

php中抽象类和接口的概念以及区别

本篇文章是对php中抽象类和接口的概念以及区别进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: //抽象类的定义: abstract class ku{ //定义一个抽象类 abstract function kx(); ...... } function aa extends ku{ //实现抽象类的方法 function kx(){ echo 'sdsf'; } } //使用方法 $aa=new aa; $aa->kx(); //1.定义一些方法,子类必须完全实现这个抽象中所

C#学习之结构与类的区别

区别 最近有看到网上面试题提到结构鱼类的区别,遂查看了msdn以及一些网上的资料总结了一下,一做学习之用 C#学习之结构与类的区别数据结构和类实际上都是创建对象的模版,每个对象都包含数据,并提供了处理和访问数据的方法.在语法上,非常相似,主要是使用关键字的区别.对于类和结构,都是使用关键字new来声明实例:这个关键字对象创建对象,并对其进行初始化. 1.值类型和引用类型结构是指类型,指类型在堆栈(栈)上分配地址,C#中的所有基类型都是结构类型(例如:int对应System.Int32结构):类是

软件工程之系统建模篇:设计接口控制类模型

接口控制类模型描述用户接口与系统其他层之间的通信,接口控制类位于系统 结构的商业上下文服务层,接口控制类模型用类图和包图描述.首先简要介绍接 口控制类模型的设计方法,然后设计子系统的接口控制类与接口类的类图,最后 设计系统及子系统的接口控制类的包图. 1.设计方法 接口控制类承担用户接口与应用程序的其他层之间通信的大多数工作,接口控 制类比较简单,对于每一个需要与应用程序的其他层进行通信的用户接口,都应 该有一个相应的接口控制类,对应的一个接口类即定义一个接口控制类.接口控 制类通常是临时的,不

Java中接口和抽象类的区别与相同之处

  这篇文章主要介绍了Java中接口和抽象类的区别与相同之处,本文讲解了抽象类的概念.接口的概念.接口和抽象类的区别与联系等内容,需要的朋友可以参考下 1. 抽象类: (1).概念:抽象类是对一种事物的抽象,即对类抽..抽象类是对整个类整体进行抽象,包括属性.行为.Java抽象类和Java接口一样,都用来声明一个新的类型.并且作为一个类型的等级结构的起点. (2).格式: 代码如下: public abstract class abstractDemo{ /**属性*/ private Stri

Callable与Runable接口 submit与execute区别

execute(Runnable x) 没有返回值.可以执行任务,但无法判断任务是否成功完成. submit(Runnable x) 返回一个future.可以用这个future来判断任务是否成功完成. 在Java5之后,任务分两类:一类是实现了Runnable接口的类,一类是实现了Callable接口的类. 两者都可以被ExecutorService执行 Future future = pool.submit(new RunnableTest("Task2"));         

Java接口和抽象类的区别深入剖析_java

本文剖析了Java学习中接口和抽象类的区别,对于初学者深入学习并准确掌握Java程序设计的理念至关重要.详情如下: Java初学者往往容易提出这样的问题:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样.接口是对动作的抽象,抽象类是对根源的抽象.抽象类表示的是,这个对象是什么.接口表示的是,这个对象能做什么.比如,男人,女人,这两个类(如果是类的话--),他们的抽象类是人.说明,他们都是人. 人可以吃东西,狗也可以吃东西,你可以把"吃东西"定义成一

接口实现类调用接口的全局常量?

问题描述 我们都知道接口中的全局变量必须是public static final的常量,我们可以通过接口名来调用它,也可以用该接口的实现类来调用该常量,但是eclipse中好像不赞成这样调用,不知道接口实现类调用接口的常量与直接用接口名调用该常量有何区别?为什么eclipse中不赞成这样使用? 解决方案 因为接口是可以多实现 的,比如 A接口有个常量NUMBER = 1000,B接口也有常量NUMBER = 1000.类C实现这两接口,如果直接引用NUMBER是不行的.再一个就是扩展性.如:C实