Java @Override Anotasi

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan melihat bagaimana menggunakan anotasi @Override .

2. @ Anotasi Override

Dalam subkelas, kita boleh mengganti atau membebani kaedah contoh. Overriding menunjukkan bahawa subkelas menggantikan tingkah laku yang diwarisi. Overload adalah apabila subkelas menambahkan tingkah laku baru.

Kadang-kadang, kita akan berlebihan secara tidak sengaja apabila kita sebenarnya ingin mengatasi. Sangat mudah untuk membuat kesilapan ini di Java:

public class Machine { public boolean equals(Machine obj) { return true; } @Test public void whenTwoDifferentMachines_thenReturnTrue() { Object first = new Machine(); Object second = new Machine(); assertTrue(first.equals(second)); } }

Anehnya, ujian di atas gagal. Ini kerana kaedah sama ini ialah memuatkan Objek # sama dengan tidak menimpanya.

Kami boleh menggunakan penjelasan @Override mengenai kaedah yang diwarisi untuk melindungi kami dari kesilapan ini.

Dalam contoh ini, kita dapat menambahkan penjelasan @Override di atas kaedah sama dengan :

@Override public boolean equals(Machine obj) { return true; }

Pada ketika ini, penyusun akan menimbulkan ralat, memberitahu bahawa kita tidak mengatasi sama seperti yang kita fikirkan.

Kemudian, kita dapat membetulkan kesilapan kita:

@Override public boolean equals(Object obj) { return true; }

Kerana betapa mudahnya memuat secara tidak sengaja, adalah cadangan biasa untuk menggunakan anotasi @Override pada semua kaedah yang diwarisi.

3. Kesimpulannya

Dalam panduan ini, kami melihat bagaimana anotasi @Override berfungsi di Java.

Kod sumber lengkap untuk contoh boleh didapati di GitHub.