Bagaimana untuk menggunakan warisan paksa untuk memproksi kelas akhir dalam pengaturcaraan Java untuk mencapai penggunaan semula kod?
Di Java, kata kunci terakhir digunakan untuk mengubah suai kelas, kaedah dan pembolehubah, menunjukkan bahawa ia tidak boleh diubah. Apabila kita menghadapi kelas yang diubah suai muktamad, kita tidak boleh mewarisinya secara langsung, tetapi kadangkala kita perlu menambah fungsi baharu pada kelas atau mengubah suai fungsi sedia ada. Pada masa ini, kita boleh menggunakan proksi warisan paksa (kelas akhir) untuk mencapai penggunaan semula kod.
Proksi warisan paksa ialah corak reka bentuk yang mewarisi dan memanjangkan fungsi kelas asal dalam kelas proksi dengan mencipta kelas proksi dengan antara muka yang sama seperti kelas asal. Berikut ialah contoh menggunakan proksi warisan paksa untuk mencapai penggunaan semula kod:
// 被final修饰的原始类 final class FinalClass { void doSomething() { System.out.println("原始类中的方法"); } } // 强制继承代理类 class ProxyClass extends FinalClass { private FinalClass finalClass; ProxyClass(FinalClass finalClass) { this.finalClass = finalClass; } // 继承原始类的方法,并在其中添加新功能 @Override void doSomething() { // 调用原始类中的方法 finalClass.doSomething(); // 添加新功能 System.out.println("代理类中的方法"); } } // 测试类 public class Main { public static void main(String[] args) { FinalClass finalClass = new FinalClass(); ProxyClass proxyClass = new ProxyClass(finalClass); proxyClass.doSomething(); } }
Dalam contoh di atas, FinalClass ialah kelas yang diubah suai oleh muktamad dan tidak boleh diwarisi secara langsung. Untuk mencapai penggunaan semula kod, kami mencipta kelas proksi ProxyClass, yang mewarisi daripada FinalClass. Bina objek ProxyClass dengan menghantar objek FinalClass untuk melaksanakan lanjutan FinalClass.
Dalam ProxyClass, kami menulis semula kaedah doSomething() dalam FinalClass Dalam kaedah tersebut, kami mula-mula memanggil kaedah doSomething() FinalClass, dan kemudian menambah output fungsi baharu. Dengan cara ini, kami melanjutkan fungsi FinalClass tanpa mengubahnya.
Dalam kelas ujian Utama, kami mencipta objek FinalClass dan objek ProxyClass, dan melaksanakan kod dengan memanggil kaedah doSomething() proxyClass. Dengan cara ini, melalui pewarisan paksa proksi (kelas akhir), kami berjaya mencapai penggunaan semula kod kelas akhir dan menambah fungsi baharu.
Perlu diambil perhatian bahawa apabila menggunakan proksi warisan paksa (kelas akhir) untuk mencapai penggunaan semula kod, anda mesti memastikan bahawa kelas proksi tidak akan diubah suai, jika tidak, kelas proksi mungkin tidak berfungsi dengan betul. Di samping itu, nama kelas proksi hendaklah jelas dan jelas untuk menunjukkan bahawa ia diwarisi (kelas akhir).
Atas ialah kandungan terperinci Bagaimana untuk menggunakan kelas akhir proksi warisan paksa untuk mencapai penggunaan semula kod dalam pengaturcaraan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!