ここに私はこの質問があります。例えば、コード1がJavaで実行時多型がであり、コード2がであり、実行時多型なしのJavaであるとします。オブジェクトの作成時に宣言された基本クラス/インタフェースまたは実装ですか?
コード1:
class A {
void run() { System.out.println("A is running"); }
}
class B extends A{
void run(){ System.out.println("B is running with A!");}
public static void main(String args[]){
A a = new B(); //referenced to class A
a.run();
}
}
コード2:
class A {
void run(){System.out.println("A is running");}
}
class B extends A{
void run(){ System.out.println("B is running with A!");}
public static void main(String args[]){
B a = new B(); //referenced to the same constructor class
a.run();
}
}
これら2つのコードはまったく同じ結果が得られたとしても、うまく実行時の多型がOOPで本当に重要であることが知られています。 Iコード1を使用する代わりに、さんはこのケースを見てみましょうコード2.
ランタイムポリモーフィズムは、複数の異なるオブジェクトが同じクラスから継承し、それらを単一の配列に格納する必要がある場合に非常に役に立ちます – Treycos
この例ではランタイムポリモーフィズムの使用が動機付けられていません。 –
可能な複製http://stackoverflow.com/questions/20783266/what-is-the-difference-between-dynamic-and-static-polymorphism-in-java – Nurjan