C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++とJavaのデフォルトの仮想動作


C ++では、メソッドはデフォルトで非仮想です。仮想キーワードを使用して仮想機能にすることができます。

サンプルコード

#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.

  1. デフォルトの仮想動作はC++とJavaでどのように異なりますか?

    C ++では、クラスメンバーメソッドはデフォルトで非仮想です。つまり、指定することで仮想化できます。 一方、Javaでは、メソッドはデフォルトで仮想であり、「final」キーワードを使用して非仮想にすることができます。 例 class base_class{    public void display_msg(){       System.out.println("The display_msg method of base class class");    } } class derived_c

  2. Javaのデフォルトの配列値

    Javaは、同じタイプの要素の固定サイズの順次コレクションを格納するデータ構造、配列を提供します。配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。要素を割り当てずに配列を作成すると、コンパイラはそれらにデフォルト値を割り当てます。次に例を示します。 ブール値-false int-0 ダブル-0.0 オブジェクト-null 例 public class Tester {    public static void main(String[] args) {