`
yjyj001
  • 浏览: 135229 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Java和C++中的纯虚函数、虚函数

阅读更多

纯虚函数和虚函数都是在讲C++的时候出现的,于是,就想在JAVA中是什么样的呢?

 

 

 经过网上查找,发现JAVA中的函数,除非声明为static或final,都可以看做是虚的,因为它们都是动态绑定的(当然final应该也是动态的,static是静态的)和可覆盖的(final不可以)。

 

 

而所谓的纯虚函数,在C++中一般是在抽象类中出现的,在JAVA中也有相对应的抽象类。另外,像JAVA中的interface中那些函数就是典型的C++中的纯虚函数。

 

 

看了程序员宝典上说的,C++的多态,实际上就是靠虚函数来实现的。而所谓的函数重载,实际上编译器是在编译的时候就对不同参数的函数进行了区分,所以说静态绑定的。

分享到:
评论

相关推荐

    Java与C++在虚函数,纯虚函数上的区别

    在Java中,没有直接对应于C++纯虚函数的概念,但可以通过**抽象方法**来实现相同的功能。一个包含抽象方法的类同样是抽象类,不能直接实例化,必须由子类实现抽象方法才能创建实例。 #### 虚基类与接口 在C++中,*...

    C++的虚函数和JAVA的抽象函数

    本文将深入探讨C++的虚函数和Java的抽象函数。 首先,C++的虚函数是通过在函数声明前添加`virtual`关键字来实现的。虚函数的主要作用是在运行时确定调用哪个函数,这种机制称为动态绑定或晚期绑定。例如,如果有...

    c++中虚函数和纯虚函数的作用与区别

    纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。 class Cman { public: virtual void Eat(){……}; void ...

    虚函数与纯虚函数(C++与Java虚函数的区别)的深入分析

    虚函数和纯虚函数是面向对象编程中的两个关键概念,主要在C++和Java中发挥作用。本文将深入探讨这两种函数的定义、用途以及它们在两种语言中的差异。 首先,让我们来理解虚函数。在C++中,虚函数是通过在基类中使用...

    4.2C++之虚函数共5页.pdf.zip

    6. **多态与接口**:虚函数使得C++可以模拟类似Java中的接口,虽然C++没有内置接口类型,但通过纯虚函数的抽象类可以实现类似功能。 7. **成员访问权限与虚函数**:虚函数可以是公有、保护或私有的,但通常为了使...

    面向对象编程C++和Java比较教程

    3. 多态:C++有静态多态(函数重载和运算符重载)和动态多态(虚函数和纯虚函数)。Java的多态主要依赖于方法的覆盖和接口的实现,所有引用类型的方法调用都会在运行时解析到实际对象的方法。 语法和特性差异: 1. ...

    JAVA和C++实现面向对象方法的分析.zip

    4. 多态:C++通过虚函数(virtual)和纯虚函数(=0)实现多态。虚函数使得基类指针可以调用派生类的重写方法,而纯虚函数用于声明抽象基类。 5. 抽象:C++的抽象类通过包含纯虚函数来定义,没有实例化抽象类的权限...

    C++中接口的实现.pdf

    在这个例子中,`IBar` 类扮演了接口的角色,包含了两个纯虚函数 `GetBarData()` 和 `SetBarData()`。`Foo` 类继承自 `IBar`,并提供了这两个函数的具体实现。通过这种方式,`Foo` 类实现了 `IBar` 接口,可以在程序...

    C++箴言:避免析构函数调用虚函数[归类].pdf

    在C++编程中,有一条重要的原则是避免在构造函数或析构函数中调用虚函数。这条箴言尤其对那些从C#或Java转向C++的开发者来说可能显得有些反直觉,因为在这些语言中,这样的调用通常是允许的。然而,在C++中,这样做...

    迅雷Java和C++面试题

    - **继承与多态**:熟悉单继承、多继承的用法,掌握虚函数、纯虚函数等概念。 - **封装与抽象**:了解封装的意义,知道如何通过访问控制实现封装。 #### 4. STL标准模板库 - **容器**:vector、list、deque、map、...

    金山软件11月14号清华 - 2014校招笔试题 - java和C++

    4. **面向对象**:类的继承、多态性(虚函数、纯虚函数)、抽象类。 5. **异常处理**:try、catch、throw语句的使用,异常类层次结构的理解。 6. **C++11新特性**:如lambda表达式、右值引用、auto关键字、move...

    Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳

    C++的抽象类还可以包含非虚函数,而Java和C#的抽象方法必须在子类中实现。 在继承树中,接口在Java和C#中扮演重要角色。Java的接口完全是抽象的,不允许有方法实现。C#中的接口也类似,但C#4.0引入了“默认接口实现...

    软件测试,java/c++面试题总结

    3. 面向对象:封装、继承、多态,虚函数与纯虚函数,抽象类的理解。 4. 内存管理:栈与堆的区别,new/delete操作,智能指针(auto_ptr、unique_ptr、shared_ptr)的使用。 5. C++11新特性:Lambda表达式、右值引用、...

    C++接口实现总结

    2. **纯虚函数**:纯虚函数是声明为虚函数但没有具体实现的函数,它的形式是`virtual returnType functionName() = 0;`。在派生类中,必须提供纯虚函数的实现,否则派生类也会成为抽象类。 3. **多重继承**:C++...

    JAVA C++学习课件

    C++的学习课件可能会涵盖C语言的基础,如指针操作、内存管理,以及C++特有的概念,如类和对象、构造函数与析构函数、继承与多态、虚函数和纯虚函数、模板、STL容器(如vector、list、set等)、算法和函数对象等。...

Global site tag (gtag.js) - Google Analytics