虚函数实际是C++语言术语,主要功能是为了实现多态
术语映射
C++ 虚函数 = Java 普通函数
C++ 纯虚函数 = Java 抽象函数
C++ 抽象类 = Java 抽象类
C++ 虚基类 = Java 接口
Java 虚函数
C++中使用virtual修饰的普通成员函数为虚函数。
Java没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数。
Java抽象函数(纯虚函数)
C++中纯虚函数
virtual void print() = 0;
Java中纯虚函数
abstract void print();
虚函数实现
案例代码
public abstract class A {
private int data1;
private int data2;
abstract void func1();
abstract void func2();
void func3() {}
void func4() {}
}
public abstract class B extends A {
private int data3;
abstract void func1();
void func3() {};
}
public abstract class C extends B {
private int data1;
private int data4;
abstract void func2();
void func4() {};
}