虛函数,抽象方法,接口之间的区别

原创 2007年09月18日 15:31:00
 

虛函数,抽象方法,接口之间的区别

虛函数:由virtual声明,它允许在派生类中被重写,要重写方法,必须先声明为virtual
public class myclass              class myclass1:myclass
{                                       {              
public virtual int myint()          public override int myint()
{                                       {
      函数体;                            函数体1;
}                                       }
注:虚函数中可以有函数体,在子类里可以重写它,也可以不重写他
 
抽象类、抽象函数:由abstract声明,在抽象类中可以定义抽象方法,抽象方法基本沒有执行代码,派生类必须重写它,提供其执行代码:
public abstract class myclass        public class myclass1:myclass
{                                             {
public abstract int myint();           public override int myint()
}                                              {
                                                   函数体;
                                                }
                                               }
注:抽象函数里没有实现代码,如有派生类,必须重写他。--从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实现。
 
接口:由interface声明,是特殊的抽象类,是方法、属性、事件和索引符的组合,沒有字段,其成员无执行方式,无构造函数,不允许进行运算符重载,接口和它的没有任何访问修饰符,它总是公共的,不能声明为虚拟或静态,继承自接口的派生类必须实现接口中的所有方法

一个接口可从一个或多个基接口继承。

当基类型列表包含基类和接口时,基类必须是列表中的第一项。

实现接口的类可以显式实现该接口的成员。显式实现的成员不能通过类实例访问,而只能通过接口实例访问
抽象类与接口的区别:

1.抽象类可以包含非抽象方法和抽象方法。这里非抽象方法就是抽象类自己的成员。而接口里都是“抽象方法”,没有自己的成员

2.一个类可以继承自多个接口,但是只能继承一个类(包括抽象类)。

3.抽象类可以有字段。接口不能

总之,接口就相当于一个纯抽象类

相关文章推荐

C#类和接口、虚方法和抽象方法及值类型和引用类型的区别

1.C#类和接口的区别 接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念! 而类是负责功能的具体实现! 在类中也有抽象类的定义,抽象类与接口的区别在于: 抽象类是一个不完全...

C#中 类 和 接口 虚方法 和 抽象方法 及 值类型 和 引用类型 的区别

C#中 类 和 接口 虚方法 和 抽象方法 及 值类型 和 引用类型 的区别 1.C#类和接口的区别 接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念! 而类是负...

C#类和接口、虚方法和抽象方法及值类型和引用类型的区别

C#类和接口、虚方法和抽象方法及值类型和引用类型的区别 1.C#类和接口的区别 接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念! 而类是负责功能的具体实现...
  • zscmj
  • zscmj
  • 2011年09月09日 14:21
  • 347

抽象类、抽象方法、接口的区别及实现

一、抽象类、抽象方法 抽象方法:类的成员方法,只有声明,没有实现,把实现交给子类。 抽象类:含有抽象方法的类。 1.有抽象方法的类一定是抽象类,但抽象类里可以没有抽象方法(当然也...
  • aionbo
  • aionbo
  • 2016年10月17日 11:49
  • 594

C# 适应虚函数,抽象类,接口分别实现多态的方法总结。

本文学习多态的实现。 虚函数可以实现多态 : 就是基类定义一个函数使用virtual来进行修饰,然后在继承类里面使用override进行重写,这样clr在调用实例的方法的时候会判断这个实例到底是那...
  • sdgxboy
  • sdgxboy
  • 2012年01月08日 23:15
  • 2038

C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

一、抽象类    (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法     (2) 抽象类不能被实例化     (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一...

虚函数与抽象函数的区别

  • 2009年03月11日 14:05
  • 2KB
  • 下载

java中的实现接口和含有抽象方法的枚举类

含有抽象方法的枚举类型: public enum Operator  { /*PLUS , MINUS , TIMES , DIVIDE; double eval(double x , dou...

关于抽象方法与接口

抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。 抽象类不一定必须含有抽象方法,但是不符合抽象类设计模式。也可以拥有成员变量和普通的成员方法。 设计一个抽象类,为了继承而存在。   抽...

抽象方法、接口、继承、多态、图形计算器

//抽象方法------------------------------ abstract Person.class.php
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:虛函数,抽象方法,接口之间的区别
举报原因:
原因补充:

(最多只允许输入30个字)