Perbedaan antara kelebihan beban, pewarisan, penggantian, dan polimorfisme:
1) Warisan adalah ketika subkelas memperoleh anggota kelas induk.
2) Overriding adalah metode implementasi kembali kelas induk setelah pewarisan.
3) Overloading adalah rangkaian metode dengan parameter berbeda dan nama yang sama dalam suatu kelas.
4) Polimorfisme untuk menghindari kelebihan beban dalam jumlah besar di kelas induk, yang akan menyebabkan kode menjadi membengkak dan sulit dipelihara.
Pernyataan menarik yang saya lihat di Internet adalah: pewarisan adalah metode subkelas menggunakan kelas induk, sedangkan polimorfisme adalah metode kelas induk menggunakan subkelas.
Contoh berikut mencakup empat implementasi ini:
kelas Segitiga memperluas Bentuk {
publik int getSides() {
kembali 3;
}
}
kelas Persegi Panjang memperluas Bentuk {
publik int getSides(int i) {
kembalikan saya;
}
}
kelas publik Bentuk {
boolean publik isSharp(){
kembali benar;
}
publik int getSides(){
kembali 0;
}
public int getSides(Segitiga tri){
kembali 3;
}
public int getSides(Rekaman persegi panjang){
kembali 4;
}
public static void main(String[] args) {
Segitiga tri = Segitiga baru();
System.out.println("Segitiga termasuk jenis benda tajam?" + tri.isSharp());
Bentuk bentuk = Segitiga baru();
System.out.println("Bentuk saya memiliki " + shape.getSides() + " sisi.");
}
}
Merah kelebihan beban, hijau menimpa, biru warisan, merah muda polimorfisme
Perhatikan bahwa metode kelas Segitiga ditimpa, sedangkan metode kelas Rectangle kelebihan beban.
Dengan membandingkan bagian merah dan merah muda, Anda dapat menemukan keunggulan polimorfisme dibandingkan kelebihan beban: Jika Anda menggunakan kelebihan beban, metode untuk mendapatkan jumlah tepi harus kelebihan beban di kelas induk untuk setiap subkelas; jika Anda menggunakan polimorfisme, maka kelas induk hanya menyediakan antarmuka untuk mendapatkan jumlah sisinya. Sedangkan untuk mendapatkan jumlah sisi yang bentuknya dan cara mendapatkannya, diimplementasikan (ditulis ulang) di subkelasnya masing-masing.