Overloading: beberapa fungsi dengan nama yang sama tetapi nama metode yang sama tetapi parameternya berbeda
Catatan: 1. Parameter yang berbeda berarti terdapat setidaknya satu perbedaan pada jenis parameter, jumlah parameter, dan urutan parameter.
2. Nilai kembalian, pengecualian, dan pengubah akses tidak dapat digunakan sebagai kondisi untuk kelebihan beban (karena untuk panggilan anonim akan terjadi ambiguitas, misal: void a() dan int a(), jika a() dipanggil maka akan terjadi ambiguitas)
3.Metode utama juga bisa kelebihan beban
Override: Subkelas menulis ulang metode kelas induk, mengharuskan nama metode dan tipe parameter sama persis (parameter tidak boleh berupa subkelas), nilai kembalian dan pengecualian lebih kecil atau sama dengan kelas induk (yang adalah, mereka adalah subkelas dari kelas induk), dan pengubah aksesnya lebih kecil dibandingkan kelas induknya lebih besar atau sama
Dua sama, dua kecil dan satu besar
Catatan: Metode instance subkelas tidak dapat menggantikan metode statis kelas induk; metode statis subkelas tidak dapat menggantikan metode instance kelas induk (terjadi kesalahan selama kompilasi).
Tersembunyi: Ketika kelas induk dan subkelas mempunyai atribut atau metode dengan nama yang sama, atribut atau metode kelas induk dengan nama yang sama hilang bentuknya, namun sebenarnya masih ada.
Catatan: Ketika penyembunyian terjadi, apa pun jenis deklarasi kelasnya, properti atau metode kelas terkait akan dipanggil, dan pengikatan dinamis tidak akan terjadi.
Hanya ada satu bentuk penyembunyian metode, yaitu metode statis yang sama yang ada di kelas induk dan subkelas
Properti hanya dapat disembunyikan, tidak dapat ditimpa
Variabel instan/variabel statis subkelas dapat menyembunyikan variabel instan/statis dari kelas induk.
Perbedaan antara bersembunyi dan menutupi:
Atribut tersembunyi, setelah subkelas dipaksa masuk ke kelas induk, atribut di kelas induk diakses.
Metode yang ditimpa, setelah subkelas dipaksa diubah menjadi kelas induk, tetap memanggil metode subkelas itu sendiri.
Karena cakupan terikat secara dinamis dan tunduk pada RTTI (identifikasi tipe run time, inspeksi tipe runtime), penyembunyian tidak tunduk pada RTTI. Singkatnya, RTTI hanya untuk cakupan, bukan untuk penyembunyian.
Keadaan khusus:
1. Properti yang diubah oleh final dapat disembunyikan, tetapi tidak dapat ditetapkan, yaitu tidak dapat ditetapkan dengan =. Dikatakan secara online bahwa properti akhir tidak dapat diubah. Pernyataan ini tidak akurat, karena setelah variabel tipe referensi dimodifikasi dengan final, hanya saja tidak dapat dimodifikasi. Menunjuk ke objek lain, tetapi dapat mengubah nilainya sendiri. Dapat diuji dengan ArrayList. Atribut final dapat diinisialisasi saat runtime, tetapi pernyataan inisialisasi harus muncul.
2.Metode terakhir yang dimodifikasi tidak dapat ditimpa dan dapat kelebihan beban
3. Kelas akhir yang dimodifikasi tidak dapat diwariskan
4. Metode privat secara implisit menambahkan final