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

原创 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.抽象类可以有字段。接口不能

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

抽象方法和接口的区别

抽象方法和接口都不能被实例化,但可以定义抽象类和接口类型的引用 如 AddService service = new AddServiceImpl();...
  • heyanfeng22
  • heyanfeng22
  • 2015年05月22日 22:57
  • 5014

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

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

PHP中抽象方法、抽象类和接口的用法

1. 抽象方法 在类中,没有方法体的方法就是抽象方法。 abstract 可见性 function 方法名称(参数1,.....);      // 如果没有显示地指定可见性,则默认为publ...
  • lamp_yang_3533
  • lamp_yang_3533
  • 2016年03月08日 20:29
  • 3298

抽象方法(abstract class)与接口(interface)比较

抽象方法(abstract class)与接口(interface)比较
  • jsqfengbao
  • jsqfengbao
  • 2015年03月28日 22:23
  • 1009

C#中的虚方法、抽象方法、抽象类、接口的联系与区别

虚方法的关键字是virtual抽象方法的关键字是abstract重写都是override 虚方法也可以new虚方法和抽象方法的区别:虚方法:可以在抽象类和非抽象类中定义,可以写在父类中,在子类中可以被...
  • HYB2012
  • HYB2012
  • 2017年01月22日 15:42
  • 267

抽象方法&虛方法

  虛方法:  定義含有關鍵字:Virtual,在派生類中可對此方法重寫(override),也可以直接使用;一般虛方法含有函數體;  抽象方法:  虛方法的一個特例,沒有函數體,只有函數定義;抽象方...
  • JustLovePro
  • JustLovePro
  • 2007年05月29日 18:55
  • 626

C# 中普通类、抽象类、接口之间的区别

一、普通类和抽象类之间的异同 1.都可以被继承 2.抽象类不能被实例化,只是用来继承的。普通类可以实例化 3.抽象方法只有含方法声明而没有方法体且必须包...
  • T_Twory
  • T_Twory
  • 2016年05月31日 09:41
  • 2008

Java中接口定义及实现接口的抽象方法

1.接口 (1)接口定义前默认修饰符为public。 (2)接口中变量默认修饰符为public static final。 (3)接口中方法默认的访问权限为public。 实例 public int...
  • hellorichen
  • hellorichen
  • 2016年09月13日 14:55
  • 2938

c# 接口和抽象方法的学习

1.、接口的概念及声明1.接口只包含方法、属性、索引器、事件的签名,但不能定义常量、字段(域)、构造函数、析构函数、静态成员和接口不包含方法的实现;2.接口类似于抽象基类:继承接口的任何非抽象类型都必...
  • qq_33481237
  • qq_33481237
  • 2016年02月14日 14:07
  • 765

php面向对象(三),抽象类,抽象方法,接口及php的”重载“

抽象类 定义:一个抽象的不能被实例化的类。 定义形式(abstract关键字):abstract class 类名{ // ... } 抽象方法 定义:一个只有方法头,没有方法体的方法 定义形...
  • ydxlt
  • ydxlt
  • 2016年02月15日 11:52
  • 2882
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:虛函数,抽象方法,接口之间的区别
举报原因:
原因补充:

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