Contoh-1: Penggunaan fungsi super () dalam Warisan tunggal
Apabila kelas anak dibuat dengan mewarisi kelas induk, maka ia dipanggil Warisan tunggal. Penggunaan super () fungsi dalam Warisan tunggal telah ditunjukkan dalam skrip berikut. Tempah adalah kelas induk di sini yang mengandungi kaedah konstruktor untuk memulakan data, Jenis buku () kaedah untuk mencetak jenis buku, dan diskaun() kaedah untuk memaparkan tawaran diskaun ada atau tidak. Buku Eng_ adalah kelas kanak-kanak di sini yang mengandungi kaedah konstruktor di mana super () fungsi digunakan untuk memanggil pembina kelas induk. Kelas kanak-kanak mempunyai kaedah lain yang dinamakan paparan_detail () untuk mencetak maklumat terperinci buku. Objek kedua-dua kelas ibu bapa dan anak-anak telah dibuat kemudian untuk memanggil kaedah berbeza kelas.
# Tentukan kelas indukBuku kelas:
# Tentukan pembina
def __init __ (diri, tajuk, pengarang, jenis, tawaran):
diri.tajuk = tajuk
diri.pengarang = pengarang
diri.jenis = jenis
diri.tawaran = tawaran
# Tentukan fungsi untuk memaparkan jenis buku
def bookType (diri):
sekiranya diri.taip == 1:
cetak ("% s adalah buku% s."% (diri.tajuk, 'Kejuruteraan'))
sekiranya diri.taip == 2:
cetak ("% s adalah buku% s."% (diri.tajuk, 'Perubatan'))
sekiranya diri.taip == 3:
cetak ("% s adalah buku% s."% (diri.tajuk, 'Kewangan'))
# Tentukan fungsi untuk memaparkan tawaran diskaun
diskaun def (diri):
sekiranya diri.tawaran == Betul:
cetak ("Buku ini mempunyai tawaran diskaun.")
lain:
cetak ("Buku ini tidak mempunyai tawaran diskaun.")
# Tentukan kelas kanak-kanak
kelas Eng_book (Buku):
# Tentukan pembina
def __init __ (diri, tajuk, pengarang, jenis, tawaran, harga):
super ().__init __ (tajuk, pengarang, jenis, tawaran)
diri.harga = harga
# Tentukan fungsi untuk memaparkan perincian buku
def display_details (diri):
super ().diskaun()
sekiranya diri.tawaran == Betul:
diri.harga = diri.harga - diri.harga * 0.15
cetak ("Nama Buku:% s"% diri.tajuk)
cetak ("Nama Pengarang:% s"% diri.pengarang)
cetak ("Harga:% 0.2f "% diri.harga)
cetak ("Menggunakan Kelas Ibu Bapa:")
# Tentukan objek kelas induk
objbook = Buku ('Mikrobiologi Perubatan', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, Salah)
# Fungsi panggilan untuk memaparkan jenis buku
buku obj.Jenis buku ()
# Fungsi panggilan untuk memaparkan tawaran diskaun
buku obj.diskaun()
cetak ("\ nMenggunakan Kelas Kanak-kanak:")
# Tentukan objek kelas kanak-kanak
objEngBook = Eng_book ('Matematik Kejuruteraan', 'H K Dass', 1, Betul, 50)
# Fungsi panggilan untuk memaparkan perincian buku
buku objEng.paparan_detail ()
Pengeluaran:
Output berikut akan muncul setelah melaksanakan skrip di atas. Output pertama telah dihasilkan dengan menggunakan objek kelas induk, dan output kedua telah dihasilkan dengan menggunakan objek kelas anak.
Contoh-2: Penggunaan fungsi super () dalam pelbagai warisan
Apabila kelas baru dihasilkan dengan mewarisi beberapa kelas, Warisan jenis ini dipanggil pelbagai warisan. Penggunaan fungsi super () dalam pelbagai warisan telah ditunjukkan dalam skrip berikut. Jabatan adalah kelas induk yang mengandungi kaedah konstruktor untuk memulakan pemboleh ubah dan paparan () kaedah untuk mencetak nama jabatan. Kursus adalah kelas kanak-kanak yang diwarisi dari Jabatan kelas, dan ia mengandungi kaedah konstruktor dan display_Course_info () kaedah untuk memaparkan perincian kursus. Guru adalah kelas kanak-kanak yang diwarisi dari Jabatan kelas, dan ia mengandungi kaedah konstruktor dan display_Teacher_info () kaedah untuk memaparkan perincian guru. Guru_Kursus adalah kelas kanak-kanak terakhir skrip yang telah ditentukan dengan mewarisi kedua-duanya Kursus dan Guru kelas. Objek dari tiga kelas kanak-kanak telah dibuat di akhir skrip untuk mengakses kaedah berbeza kelas. The super () fungsi telah digunakan di dalam kaedah konstruktor bagi semua kelas anak untuk memanggil pembina kelas induk. Empat nilai argumen diperlukan untuk membuat objek kelas kanak-kanak kerana konstruk kelas Jabatan mengandungi empat argumen.
# Tentukan Kelas Ibu BapaJabatan kelas ():
def __init __ (diri, dept_name, total_courses, total_credit, total_teachers):
diri.dept_name = dept_name
diri.jumlah_kursus = jumlah_kursus
diri.jumlah_kredit = jumlah_kredit
diri.total_teachers = total_teachers
paparan def (diri):
cetak ("Nama Jabatan:% s"% diri.nama dept)
# Tentukan kelas anak pertama
Kursus kelas (Jabatan):
def __init __ (diri, nama, kursus, kredit, guru):
# Panggil pembina kelas induk
super ().__init __ (nama, kursus, kredit, guru)
def display_Course_info (diri):
cetak ("Jumlah Kursus:% d"% diri.jumlah_kursus)
cetak ("Jumlah Kredit:% d"% diri.jumlah_kredit)
# Tentukan kelas anak kedua
Guru kelas (Jabatan):
def __init __ (diri, nama, kursus, kredit, guru):
# Panggil pembina kelas induk
super ().__init __ (nama, kursus, kredit, guru)
def display_Teacher_info (diri):
cetak ("Jumlah Guru:% d"% diri.jumlah_pengajar)
# Tentukan kelas anak ketiga yang diwarisi dari dua kelas
Teacher_Course (Kursus, Guru) kelas:
def __init __ (diri, nama, kursus, kredit, guru):
# Panggil pembina kelas induk
super ().__init __ (nama, kursus, kredit, guru)
def display_details (diri):
super ().paparan ()
super ().display_Course_info ()
super ().display_Teacher_info ()
cetak ("Menggunakan kelas anak pertama")
objCourses = Kursus ('CSE', 72, 150, 50)
objCourses.paparan ()
objCourses.display_Course_info ()
cetak ("\ nMenggunakan kelas anak kedua")
objTeachers = Guru ('BBA', 65, 140, 55)
objTeachers.paparan ()
objTeachers.display_Teacher_info ()
cetak ("\ nMenggunakan kelas anak ketiga yang diwarisi dari pelbagai kelas")
objDCT = Teacher_Course ('Bahasa Inggeris', 60, 122, 20)
objDCT.paparan_detail ()
Pengeluaran:
Output berikut akan muncul setelah melaksanakan skrip di atas. Tiga output telah dihasilkan di sini dengan membuat objek dari tiga kelas kanak-kanak.
Kesimpulannya:
The super () fungsi hanya boleh digunakan di dalam kelas anak untuk memanggil konstruktor dan kaedah kelas induk yang lain. Penggunaan fungsi ini telah ditunjukkan dalam tutorial ini dengan membuat Warisan tunggal dan pelbagai peringkat. Saya harap tujuan penggunaan fungsi ini dalam OOP akan dihapus setelah membaca tutorial ini.