Dalam pengaturcaraan berorientasikan objek, subkelas memanjangkan tingkah lakunya dengan mengatasi fungsi kelas induk. Untuk mengatasi fungsi, anda perlu menggunakan kata kunci ganti dan tandatangan fungsi subkelas mestilah sama dengan kelas induk. Kelebihannya termasuk: menyesuaikan tingkah laku kelas induk, mengekalkan fungsi kelas induk dan meningkatkan kebolehgunaan semula kod. Beri perhatian kepada tandatangan fungsi yang sepadan, memanggil pelaksanaan kelas induk dan mengatasi dengan teliti.
Dalam pengaturcaraan berorientasikan objek, subkelas boleh mengatasi fungsi kelas induk untuk mengubah suai atau melanjutkan kelakuannya. Ini membolehkan subkelas mengkhususkan kefungsian kelas induk sambil mengekalkan kefungsian asas kelas induk.
Untuk mengatasi fungsi kelas induk dalam subkelas, anda perlu menggunakan kata kunci override
. Kata kunci ini menunjukkan kepada pengkompil bahawa anda ingin mengatasi fungsi dalam kelas induk. Anda mesti memastikan bahawa tandatangan fungsi subkelas adalah sama dengan tandatangan fungsi kelas induk, termasuk nama fungsi, senarai parameter dan jenis nilai pulangan. override
关键字。该关键字指示编译器,您要覆盖父类中的函数。您必须确保子类的函数签名与父类的函数签名完全相同,包括函数名称、参数列表和返回值类型。
class Parent: def say_hello(self): print("Hello from parent class!") class Child(Parent): def say_hello(self): super().say_hello() print("Hello from child class!")
在这个示例中,Child
类覆盖了 Parent
类的 say_hello
函数。子类的函数调用 super()
方法来访问父类的原始实现,然后添加自己的行为。
让我们考虑一个计算器类的示例,其中我们希望添加日志功能。
class Calculator: def add(self, a, b): return a + b class LoggingCalculator(Calculator): def add(self, a, b): print(f"Adding {a} and {b}") return super().add(a, b)
在这个例子中,LoggingCalculator
类覆盖了 Calculator
类的 add
函数以添加日志。每次调用 add
方法时,它都会打印要添加的数字,然后调用父类 Calculator
中的原始 add
方法进行实际添加。
函数覆盖提供了以下优点:
super()
rrreeeChild
mengatasi fungsi say_hello
bagi kelas Ibu bapa
. Fungsi subkelas memanggil kaedah super()
untuk mengakses pelaksanaan asal kelas induk dan kemudian menambah tingkah laku mereka sendiri. LoggingCalculator
mengatasi fungsi Calculator
kelas add
untuk menambah pengelogan. Setiap kali kaedah add
dipanggil, ia mencetak nombor yang akan ditambah dan kemudian memanggil kaedah add
asal dalam kelas induk Kalkulator
untuk dilakukan penambahan sebenar. 🎜🎜Kelebihan🎜🎜Penggantian fungsi memberikan kelebihan berikut: 🎜super()
untuk memanggil pelaksanaan asal kelas induk untuk mengelakkan kehilangan tingkah laku yang disebabkan oleh kaedah mengatasi. 🎜🎜Gunakan fungsi menimpa dengan berhati-hati kerana ia mungkin melanggar gelagat yang dijangkakan oleh kelas induk secara tidak sengaja. 🎜🎜Atas ialah kandungan terperinci Mengatasi fungsi kelas induk: memahami lanjutan kelakuan kelas induk mengikut subkelas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!