虚函数和抽象函数有什么区别

如题所述

虚函数是有代码的并明确允许子类去覆盖,但子类也可不覆盖,就是说可以直接用,不用重写 。抽象函数是没有代码,子类继承后一定要重写 在一个类中用虚函数: 是因为在超类中的有实际代码的方法,但明确允许子类可以作重写 而且当子类重写后,可以用子类实例超类;如果这样,超类变量调用虚函数时,执行的是子类的方法 在一个类中用抽象函数 是在写超类时不确定函数的代码,让子类去实现 抽象函数没有方法体。简单来说虚函数(Virtual)已经包含了也必须包含默认的实现,所以在派生类中可以重新实现也可以不实现这些虚函数。抽象函数(abstract)没有提供默认实现,所以在派生类中必须实现这些抽象函数。接口中的函数类似于抽象函数,也不提供默认实现,实现接口的类也必须实现这些函数。但接口可用于多继承,即,类只能从一个类继承,但可同时实现多个接口。
温馨提示:内容为网友见解,仅供参考
无其他回答

虚函数和抽象函数有什么区别
虚函数(Virtual)与抽象函数(abstract)在面向对象编程中扮演着不同的角色。虚函数是有明确代码支持的,允许子类覆盖但不是必须的。这意味着,子类可以选择直接使用父类的实现,也可以提供自己的实现。因此,使用虚函数的类可以有多个子类,每个子类可以独立决定是否覆盖虚函数的方法。抽象函数则不同,它们...

虚函数和抽象函数有什么区别
虚函数是有代码的并明确允许子类去覆盖,但子类也可不覆盖,就是说可以直接用,不用重写 。抽象函数是没有代码,子类继承后一定要重写 在一个类中用虚函数: 是因为在超类中的有实际代码的方法,但明确允许子类可以作重写 而且当子类重写后,可以用子类实例超类;如果这样,超类变量调用虚函数时,执行...

C++中的虚函数和JAVA中的抽象方法有什么区别?
1:java中没有虚函数的概念,但是有抽象函数的概念,用abstract关键字表示,java中抽象函数必须在抽象类中,而且抽象 函数不能有函数体,抽象类不能被实例化,只能由其子类实现抽象函数,如果某个抽象类的子类仍是抽象类,那么该子类不需要实现其父类的抽象函数。2:C++中的有虚函数的概念,用virtual ...

C#中虚函数跟抽象函数有什么用,怎么去区别
虚函数是有代码的并明确允许子类去覆盖,但子类也可不覆盖,就是说可以直接用,不用重写 。抽象函数是没有代码,子类继承后一定要重写 在一个类中用虚函数:是因为在超类中的有实际代码的方法,但明确允许子类可以作重写 而且当子类重写后,可以用子类实例超类;如果这样,超类变量调用虚函数时,执行的...

抽象方法与虚方法的区别?
抽象方法是只有定义、没有实际方法体的函数,它只能在抽象函数中出现,并且在子类中必须重写;虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖。重写的子类虚函数就是被覆盖了。

C#虚函数和接口的区别
1.abstract 和virtual的关键字不同 2.抽象方法一定没有方法体,而虚方法可以有方法体。虚函数从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时采用先期绑定编译到了执行文件中,其相对地址在程序运行期间是不发生变化的。而虚函数在编译期间采用的是后期绑定,它的相对地址是...

举例说明虚函数在类的继承中的作用
虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。具体的例子可以从网上或者相关教材中找找 主要还是要进一步的理解...

2021春招C#.NET笔试题基础篇 (原题+详解答案)
12. 多态中overload与override的区别?overload是方法名称相同,参数不同,实现不同功能;override是在基类中重写虚方法,实现多态。13. static关键字的作用?用于修饰静态成员,包括静态字段和静态方法,通过类名访问。14. 成员变量和成员函数前加static的作用?表示常成员变量和常成员函数,用于反映类的...

帮忙推荐一套.net网站开发面试题,谢谢
74.什么是虚函数?什么是抽象函数?答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。75.什么是XML?答:XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记...

使用类有哪些方式有哪些
三、多态性 多态性是面向对象编程的四大特性之一。在类的使用中,多态性表现为不同对象对同一消息作出不同响应的能力。通过虚函数或抽象函数的使用,可以在运行时根据对象的实际类型来选择调用哪个函数,增加了代码的灵活性和可扩展性。在面向对象的设计中,多态使得我们可以更好地实现代码的复用和模块化...

相似回答
大家正在搜