デフォルトの仮想動作は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_class extends base_class{ public void display_msg(){ System.out.println("The display_msg of derived class called"); } } public class Main{ public static void main(String[] args){ base_class my_instance = new base_class();; my_instance.display_msg(); } }
出力
The display_msg method of base class class
関数「display_msg」を持つ「base_class」という名前のクラスが作成されます。この関数は、関連するメッセージを表示するだけです。 「derivated_class」という名前の別の関数は、「base_class」から継承されます。このクラスには、関連するメッセージを表示する「display_msg」もあります。 Mainという名前の別のクラスには、base_classのインスタンスが作成されるmain関数が含まれています。このインスタンスで「display_msg」が呼び出され、出力が画面に表示されます。
-
Javaのデフォルトメソッドを使用して菱形継承問題を解決するにはどうすればよいですか?
継承 1つのクラスが他のクラスのプロパティを継承する2つのクラス間の関係です。この関係は、extendsキーワードを使用して-として定義できます。 public class A extends B{ } プロパティを継承するクラスはサブクラスまたは子クラスと呼ばれ、プロパティを継承するクラスはスーパークラスまたは親クラスです。 継承では、スーパークラスメンバーのコピーがサブクラスオブジェクトに作成されます。したがって、サブクラスオブジェクトを使用すると、両方のクラスのメンバーにアクセスできます。 複数の遺産: 利用可能な継承には、単一、マルチレベル、階層、複数、およびハイブリッドのさまざ
-
Javaのデフォルトメソッドを使用してダイヤモンド問題を解決する方法
継承 1つのクラスが他のクラスのプロパティを継承する2つのクラス間の関係です。この関係は、extendsキーワードを使用して-として定義できます。 public class A extends B{} プロパティを継承するクラスはサブクラスまたは子クラスと呼ばれ、プロパティを継承するクラスはスーパークラスまたは親クラスです。 継承では、スーパークラスメンバーのコピーがサブクラスオブジェクトに作成されます。したがって、サブクラスオブジェクトを使用すると、両方のクラスのメンバーにアクセスできます。 多重継承とは、1つのクラスが複数のクラスのプロパティを継承することです。言い換えると、多重継承