美文网首页
虚函数,非虚函数,抽象函数

虚函数,非虚函数,抽象函数

作者: 刘岳森 | 来源:发表于2018-05-29 20:40 被阅读34次

虽然在java中不存在非虚函数,因为java的所有类中的函数都是虚函数。但是我们还是要讨论一下C类语言和java类语言中的这三个概念。我们采用从不抽象到抽象的顺序去说。

非虚函数和虚函数

这两个比较相似,就放在一起说了
非虚函数也就是正常没有被声明为virtual的函数(在C类语言中是如此,在Java中未生命的都是虚方法)
非虚函数和虚函数都可以被子类重写。但是在子类继承父类之后如果子类对象强制转换成父类,那么通过此对象调用虚方法是是用的子类的方法,而非虚方法是父类的方法。除此之外虚函数的调用开销要大于普通函数,但是现在纯oop语言所有类的成员方法默认都是虚方法了。
创造虚方法的目的就是为了更好的实现多态性,使得在使用的时候不需要考虑子类和父类实现方法和使用方法有什么不同,只需要完全按照父类的实现方法去操作就可以

抽象函数

抽象函数就是只声明一个函数的形式以及调用方法,不声明具体实现,所有子类必须实现抽象方法。

相关文章

  • 虚函数,非虚函数,抽象函数

    虽然在java中不存在非虚函数,因为java的所有类中的函数都是虚函数。但是我们还是要讨论一下C类语言和java类...

  • 虚函数

    虚函数 Inheritance (继承) with virtual functions (虚函数) 非虚函数:继承...

  • 纯虚函数和抽象类

    纯虚函数和抽象类 概念 纯虚函数:没有函数体的虚函数。 抽象类:包含纯虚函数的类就称为抽象类。 纯虚函数就是在函数...

  • 【C++】C++学习笔记之十二:虚函数与多态

    虚函数 虚函数的种类: 非虚函数(non-virtual function)——普通函数 不希望继承自其的子类对该...

  • 4.0 C++远征:纯虚函数与抽象类

    3-1纯虚函数抽象类 [TOC] 一、纯虚函数 1.纯虚函数的定义 ​ 纯虚函数,没有函数体,同时定义时在函数...

  • 虚函数和非虚函数

    接口继承和实现继承 public继承下,派生类总是继承基类的接口。 纯虚函数必须被派生类重新声明,通常在抽象类中没...

  • C++ - 纯虚函数与抽象类

    纯虚函数:没有函数体的虚函数 抽象类:包含纯虚函数的类只能作为基类来派生新类使用不能创建抽象类的对象抽象类的指针和...

  • C#:密封类可以有虚函数吗

    可以,基类中的虚函数将隐式的转化为非虚函数,但密封类本身不能再增加新的虚函数

  • 纯虚函数、抽象类、多继承、菱形继承、虚继承、虚基类

    纯虚函数:没有函数体且初始化为0的虚函数,用来定义接口规范 抽象类(Abstract Class)含有纯虚函数的类...

  • c++语法4

    接上一篇继续学习抽象类、函数模板 抽象类 c++中的抽象类是通过纯虚函数体现的,凡是含有纯虚函数的类叫做抽象类纯虚...

网友评论

      本文标题:虚函数,非虚函数,抽象函数

      本文链接:https://www.haomeiwen.com/subject/njoajftx.html