Rumah >Java >javaTutorial >Kesan pengubah suai akses fungsi Java dan penggantian kaedah
Pengubah suai capaian kaedah ganti dalam subkelas mestilah sama atau lebih luas: kebenaran capaian kaedah subkelas boleh lebih luas daripada kaedah kelas induk (contohnya, ditukar daripada dilindungi kepada awam). Kaedah subkelas tidak boleh mempunyai akses yang lebih terhad daripada kaedah superclass (contohnya, daripada awam kepada dilindungi).
Impak pengubahsuai akses fungsi Java dan mengatasi kaedah
Pengubah suai akses mengawal kebolehcapaian kaedah Java. Ia terdiri daripada empat jenis:
Apabila mengatasi kaedah dalam kelas induk, kaedah yang diganti dalam kelas anak mesti mempunyai pengubah suai akses yang sama atau lebih luas. Ini kerana kaedah yang diganti adalah berdasarkan kaedah kelas induk, jadi ia tidak boleh lebih terhad daripada kaedah kelas induk.
Kes praktikal
Berikut ialah kelas induk:
public class Parent { protected void show() { System.out.println("Parent class show()"); } }
Sekarang, pertimbangkan subkelas berikut, yang mengatasi kaedah show()
dalam kelas induk. Ambil perhatian bahawa pengubah suai akses kaedah show()
ditukar daripada protected
kepada public
: show()
方法。注意 show()
方法的访问权限修饰符是从 protected
更改为 public
:
public class Child extends Parent { @Override public void show() { System.out.println("Child class show()"); } }
由于父类的 show()
方法是 protected
的,子类的 show()
方法也必须是 protected
或 public
。将其设置为 public
符合方法重写的要求,因为它具有比父类方法更宽的访问权限。
运行这两个类将打印以下输出:
Child class show()
这是因为 Child
类中的重写方法被调用,因为它具有更宽的访问权限(public
rrreee
kelas induk kaedah show( )
adalah protected
dan kaedah show()
subkelas juga mestilah protected
atau public kod> >. Menetapkannya kepada <code>awam
layak sebagai penggantian kaedah kerana ia mempunyai akses yang lebih luas daripada kaedah kelas induk. 🎜🎜Menjalankan kedua-dua kelas ini akan mencetak output berikut: 🎜rrreee🎜Ini kerana kaedah yang diganti dalam kelas Child
dipanggil kerana ia mempunyai akses yang lebih luas (public
code> ). 🎜Atas ialah kandungan terperinci Kesan pengubah suai akses fungsi Java dan penggantian kaedah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!