虚函数表

简介: 父类package xuhanshubiao;public class Foo { void aFunction() { System.out.println("一年前"); bFunction(); } void bFunction() { System.

父类

package xuhanshubiao;

public class Foo {
    void aFunction() {
        System.out.println("一年前");
        bFunction();
    }
    void bFunction() {
        System.out.println("请修改爱人的名字");
    }
}

子类

package xuhanshubiao;

public class ProgramerA extends Foo{
    public static void main(String[] args) {
            Foo foo1 = new ProgramerA();
            foo1.aFunction();
            Foo foo2 = new Foo();
            foo2.aFunction();

        }
        void bFunction() {
            System.out.println("小丽");
        

    }
}

当运行时,f1,2输出的a是相同的:一年前

但是f1输出的b是小丽,f2:请修改爱人的名字

原因如下:

比如:

Parent p = new Child();

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

 

目录
相关文章
|
8月前
|
C++
38.【C++ 虚函数 纯虚函数 虚基类 (最全详解)】(一)
38.【C++ 虚函数 纯虚函数 虚基类 (最全详解)】
30 0
|
8月前
|
C++
38.【C++ 虚函数 纯虚函数 虚基类 (最全详解)】(二)
38.【C++ 虚函数 纯虚函数 虚基类 (最全详解)】
54 0
|
4月前
|
设计模式 安全 C++
c++ 虚函数小结
c++ 虚函数小结
|
5月前
|
C++
多态-虚函数表
多态-虚函数表
30 0
|
5月前
多重继承的虚函数表
多重继承的虚函数表
26 0
|
7月前
|
存储 编译器 C++
对C++中的虚函数的说明
对C++中的虚函数的说明
15 0
|
11月前
|
存储 C++
C++ 虚函数,虚函数表
C++ 虚函数,虚函数表
|
Java C++
C++中的虚基类
🐰虚基类 🌸虚基类的声明 🌸虚基类的初始化 🌸总结
|
编译器 C++
C++之虚函数
C++进阶之虚函数
73 0
|
存储 NoSQL 编译器
C++为什么要弄出虚表这个东西?
首先声明一点,虚表并非是C++语言的官方标准的一部分,只是各家编译器厂商在实现多态时的解决方案。另外即使同为虚表不同的编译器对于虚表的设计可能也是不同的,本文主要基于Itanium C++ ABI(适用于gcc和clang)。
134 0
C++为什么要弄出虚表这个东西?