(心得)virtual\abstract\interface

问题描述

virtual——虚方法virtual用于修饰类的方法,表示该方法为一个虚方法。虚方法与普通方法的定义方式一样,只是比普通方法多了一个virtual修饰符。虚方法的作用只体现在类的继承里。当一个类B继承了一个带有虚方法virA()的类A时,可以用override修饰符重写(不是隐藏)virA()方法。重写后用子类B的实例b赋值给基类A的实例a,再用a.virA()时,使用的是类B中重写virA()后的方法。也就是说,重写基类虚方法后,任何通过子类实例去找基类虚方法的路子都行不通。除此之外虚方法的用法与普通方法完全一样。abstract——抽象方法抽象方法在功能上实际上是函数体为空的虚方法。与虚方法不同的是,抽象方法不可以使用new操作符来隐藏(因为抽象方法不做任何操作,隐藏它是完全没有必要的)。另外,包含抽象方法的类为抽象类。也就是说,包含抽象方法的类需要用abstract修饰。抽象方法的用法还需要抽象类规则来限定。abstract——抽象类整理中。。。interface——接口整理中。。。

解决方案

解决方案二:
自己顶一个!

时间: 2024-09-21 09:26:41

(心得)virtual\abstract\interface的相关文章

new,virtual,override,interface,delegate,event-------------C#——方法实现总结

C#--方法实现总结 本文分两部分来写,第一部分:C#方法实现的理解与问题,第二部分:C#中方法实现的种类. 第一部分:C#方法实现的理解与问题 理解: 1. 使用virtual和override关键字,在基类和派生类中用同样的方法签名实现不同的方法 2.  使用interface接口,在不同的类中,用相同的方法签名实现不同的方法 3.  用委托delegate,把不同类中的方法集合在一起,然后一起调用,完成某种综合的功能 4.  使用事件,完成跟委托一样的功能 以上四条全都说明了面向对象的多态

PHP中的Abstract Class和Interface

最近开始学习PHP+MySQL,记录下学习过程中的重点内容吧,然后考虑把开发网站的过程也写一个系列Blog. 这篇blog主要介绍了Abstract Class和Interface的区别. Abstract Class 什么是Abstract Class( 抽象类) 和C++中的抽象类概念一样,包含有纯虚函数(Java和Php中叫abstract method)的类叫做Abstract Class. 我们有时候也把abstract Class叫做base class,因为base class不能

温故而知新:new与override的差异以及virtual方法与abstract方法的区别

先直接看代码吧: using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { B b = new B(); b.Method1(); Console.ReadLine(); } } class A { public virtual void Method1() { Console.WriteLine("A.Method1"); } } class B :

c#中override virtual static abstract sealed 的作用

c#中override virtual static abstract sealed 的作用 说明1: 表示静态的关键字 说明此对象在应用中只存在一份 说明2: C# 是面向对象的程序设计语言,每一个函数都属于一个类. 当一个方法被声明为Static时,这个方法是一个静态方法,编译器会在编译时保留这个方法的实现.也就是说,这个方法属于类,但是不属于任何成员,不管这个类的实例是否存在,它们都会存在.就像入口函数Static void Main,因为它是静态函数,所以可以直接被调用. 当一个方法被声

Parallel Virtual Machine

As already mentioned earlier, our parallelization of the collision detection methods presented earlier was implemented using Parallel Virtual Machine or PVM ([GBD+94]). PVM is the result of ongoing research into the use of heterogenous networks in co

override deal with window closing in database application

application|window In the database application development, the programmer should often deal with one thing that is when the user close a window (called Form in Delphi) where data was maintained, the program should judge whether the data was changed

delphi应用GetClass与RegisterClass的例子

利用GetClass与RegisterClass可以实现根据字符串来实例化具体的子类,这对于某些需 要动态配置程序的场合是很有用的.其他的应用如子窗体切换,算法替换等都能得到应用. unit Example1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1:

uboot2011.09源代码ReadMe译文

# # (C) Copyright 2000 - 2011 # Wolfgang Denk, DENX Software Engineering, wd@denx.de. #查看建立这个工程的文件列表人 # #这个程序是自由软件,你可以重新分配它或者修改它在GNU通用公共许可证以由自由软件基#金会发布:第二版或者任何之后的版本. #本程序是分布在希望它是有用的,但没有任何保证:甚至没有隐含保证. #查看 GNU通用公共许可证对于更多的细节. #你应该收到一份GNU通用公共许可证随着这个程序:如果

Thrift

Thrift: Scalable Cross-Language Services Implementation 对于FaceBook, 鼓励使用最合适的语言和工具来快速实现功能, 所以不同的工程师使用不同的语言, 带来一个明显的问题, 不同语言开发的模块之间的整合问题. Given this design choice, we were presented with the challenge of building a transparent, high-performancebridge a