java 多态 怎样理解c 中的虚基类和虚函数.纯虚函数?
怎样理解c 中的虚基类和虚函数.纯虚函数?
虚拟函数和纯虚拟函数有以下区别。(1) 如果在类中声明了虚函数,则即使该函数为空,也会实现该函数。它的目的是使函数能够包含在其子类中。这样,编译器就可以使用后期绑定来实现多态性。纯虚函数只是一个接口,一个函数的声明,需要在子类中实现。(2) 虚拟函数不能在子类中重载,但是纯虚拟函数必须在子类中实现,就像Java接口一样。一般来说,在许多函数中添加虚拟元素是一个好习惯。虽然牺牲了一些性能,但是面向对象的多态性增加了,因为很难预测父类中的函数不在子类中,并且它的实现不会被修改。(3) 虚函数类用于“实现继承”,不仅继承接口,而且继承父类的实现。当然,你也可以完成你自己的实现。纯虚函数注重接口的统一性,通过子类实现。(4) 具有纯虚函数的类称为虚基类。这种基类不能直接生成对象。只有继承并重写虚拟函数后才能使用。这样的类也称为抽象类。
Java和C 的区别是什么?
C是基于C语言开发的,一开始C语言不支持面向对象,后来又引入了面向对象的概念,也就是C,而Java是天生的面向对象,有人说C不是一个完整的面向对象语言,但都是狭义的。如果要比较这两种语言,Java更面向对象,一切都是对象,接口、继承等功能都很完善。例如,当涉及到多态性时,C需要使用虚拟函数,而Java直接实现它们。但从语言的角度来看,Java是一种跨平台的解释性语言。解释器将把文本解释成语法树,而不是编译。Java在Java虚拟机上运行,不直接在内存上运行。虚拟机具有垃圾收集机制,是一种内存安全的编程语言。因此,它不如C灵活,效率也不高。C是一种编译语言,编译器将代码编译成机器代码。因此,有人说C/C是最接近机器语言的高级语言,也有人称C为中间语言。但是由于操作系统的底层接口和实现机制不同,系统调用的代码也会不同,所以C/C也不一样,不能跨平台运行,一般用于追求高效、低层次的开发,如MCU。C内存不安全,因此程序员需要警惕内存泄漏、数据损坏等问题。从开发角度看,C/C语法简洁灵活,开发效率高于Java,但学习困难,Java代码繁琐,开发效率低。然而,由于它有许多框架、许多可重用类库和J2EE支持,因此在web和Internet开发中得到了广泛的应用。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。