c++和java中关于如何调用父类方法和子类方法的辨析
来源:互联网 发布:overture mac 编辑:程序博客网 时间:2024/05/23 00:09
首先观察下面两个程序(分别使用vc6.0和myecllipse10测试)
#include <iostream>using namespace std;class A{public:void f(){cout<<"class A "<<endl;}};class B : public A{public:void f(){cout<<"class B "<<endl;}};void main(){A* p;p = new A();p->f();//class Ap = new B();p->f();//class Ap = new B();((B*)p)->f();//class BB* b;//b = new A();//compile error}
class A{void f(){System.out.println("class A");}}class B extends A{void f(){System.out.println("class B");}}public class Test {public static void main(String[] args) {A p = null;p = new A();p.f();//class Ap = new B();p.f();//class B//B b = (B) new A();//Exception in thread "main" java.lang.ClassCastException: A cannot be cast to B}}
以上两个程序都有一个父类A,以及子类B,两个类中都有f()方法。
可以发现在c++中,函数调用是根据函数前面指针的类型决定的(p的类型),java是根据p所指的对象的类型(p = new ?())来决定的。
以后写c++中,如果父类指针要调用子类方法,切记要进行强制类型转换。
一起学习,一起进步,欢迎访问我的博客:http://blog.csdn.net/wanghao109
- c++和java中关于如何调用父类方法和子类方法的辨析
- 关于JAVA中子类和父类的构造方法
- java子类如何调用父类变量和方法
- 关于子类和父类之间的方法调用关系
- java中类和组件、方法和事件的辨析
- 子类调用父类方法:c++和java的不同
- php 子类中如何调用父类的变量和方法
- php基础 继承_子类中如何调用父类的变量和方法
- php 子类中如何调用父类的变量和方法
- 在C 中子类继承和调用父类的构造函数方法
- 关于Java中子类调用父类方法
- 关于Java中子类能否继承和重写父类的静态方法问题
- Java中子类和父类构造方法的问题
- Java父、子类成员变量和方法的调用关系
- JAVA基础 -从父类的引用如何调用子类中独有的方法
- java中子类调用父类的构造方法
- java中如何让一个子类不能调用从父类继承的方法
- 子类继承和调用父类的构造方法
- 关于WIN7下VB6中Microsoft Windows Common Controls 6.0 (SP6)加载提示“对象库未注册”的一种办法
- 阿里云开发者大会个人体会
- Linux下C/S模型的TCP_socket通信代码
- C语言常用链表操作
- windows xp系统下Android模拟器安装apk与卸载apk
- c++和java中关于如何调用父类方法和子类方法的辨析
- android开发之wifi网络操作初步
- jdk 1.5新特性——泛型
- java类库的阅读笔记_jdk1.7.0_40_java.util.ArrayList
- So cute are you Python 13
- ffmpeg开发中的问题(八)
- Python中__init__(),__getitem__()和__setitem__()的使用实例
- 内存分配方式,堆区,栈区,new/delete/malloc/free
- C/C++中extern关键字详解