C++ 與 Java 中的預設虛擬行為


在 C++ 中,方法預設是非虛擬的。可以透過使用 virtual 關鍵字將它們設為虛擬函式。

示例程式碼

#include <iostream>
using namespace std;
class B {
   public: void s() //non virtual by default. Use virtual before the function to print “In Derived” {
      cout<<" In Base \n";
   }
};

class D: public B {
   public: void s() {
      cout<<"In Derived \n";
   }
};

int main(void) {
   D d; // An object of class D
   B &b = d;
   b.s();
   return 0;
}

輸出

In Base.

在 Java 中,方法預設是虛擬的。可以透過使用 final 關鍵字將它們設為非虛擬函式。

示例程式碼

class B {
   public void s() {
      System.out.println("In Base"); // virtual by default
   }
}

class D extends B {
   public void s() {
      System.out.println(" In Derived");
   }
}

public class Main {
   public static void main(String[] args) {
      B b = new D();
      b.show();
   }
}

輸出

In Base.

更新於: 2019 年 7 月 30 日

136 次瀏覽

開啟職業生涯

透過完成課程獲得認證

入門
廣告
© . All rights reserved.