オーバーロード、継承、オーバーライド、ポリモーフィズムの違い:
1) 継承とは、サブクラスが親クラスのメンバーを取得することです。
2) オーバーライドとは、継承後に親クラスを再実装する方法です。
3) オーバーロードとは、クラス内で異なるパラメーターと同じ名前を持つ一連のメソッドです。
4) ポリモーフィズムは、コードが肥大化して保守が困難になる、親クラスでの多数のオーバーロードを回避するためのものです。
インターネットで見た興味深い言葉は、「継承はサブクラスが親クラスを使用するための方法であり、ポリモーフィズムは親クラスがサブクラスを使用するための方法である」です。
次の例には、次の 4 つの実装が含まれています。
class Triangle extends Shape {
public int getSides() {
return 3;
}
}
class Rectangle extends Shape {
public int getSides(int i) {
return i;
}
}
public class Shape {
public boolean isSharp(){
return true;
}
public int getSides(){
return 0;
}
public int getSides(Triangle tri) {
return 3 ;
}
public int getSides(Rectangle rec){
return 4 ;
}
public static void main(String[] args) {
Triangle tri = new Triangle();
System.out.println (“三角形はシャープの一種ですか? ” + tri.isSharp());
形状の形状 = new Triangle();
System.out.println(“私の形状には ” + Shape.getSides() + ” の側面があります。” );
}
}
赤はオーバーロード、緑は上書き、青は継承、ピンクはポリモーフィズムです
Triangle クラスのメソッドがオーバーライドされ、Rectangle クラスのメソッドがオーバーロードであることに注意してください。
赤とピンクの部分を比較すると、オーバーロードに対するポリモーフィズムの利点がわかります。オーバーロードを使用する場合、エッジの数を取得するメソッドは、ポリモーフィズムを使用する場合は各サブクラスの親クラスでオーバーロードする必要があります。クラスは辺の数を取得するためのインターフェースを提供するだけです。どの形状の辺の数をどのように取得するかについては、それぞれサブクラスで実装(書き換え)します。
Java におけるオーバーロード、継承、書き換え、ポリモーフィズムの違いに関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。