Rumah  >  Artikel  >  Java  >  Fungsi Maya di Jawa

Fungsi Maya di Jawa

王林
王林asal
2024-08-30 15:35:01452semak imbas

Menjadi bahasa pengaturcaraan berorientasikan objek, java menyokong ciri seperti pewarisan, polimorfisme, upcasting, dsb. Oleh itu, OOP dalam Java berkaitan dengan objek, kelas dan fungsi. Fungsi maya ialah salah satu fungsi ahli yang memudahkan polimorfisme masa larian di Jawa. Dalam artikel ini, kita akan membincangkan fungsi maya dalam Java.

Definisi: Fungsi maya bukanlah sebarang fungsi khas, tetapi ia adalah fungsi ahli yang memudahkan mekanisme mengatasi kaedah. Ini bermakna, dalam OOP, fungsi maya kelas induk ialah fungsi yang boleh ditindih oleh kelas anak yang mempunyai jenis yang sama tetapi dengan fungsi yang berbeza.

IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks: Untuk Fungsi Maya dalam Java, anda harus mengikuti sintaks asas java dengan anotasi. Untuk melaksanakan mekanisme penggantian bagi fungsi maya, anotasi @Override boleh digunakan di sini untuk menunjukkan secara khusus fungsi maya yang ingin kami tolak, walaupun ia tidak wajib.

Bagaimana Fungsi Maya Berfungsi dalam Java?

Sekarang mari kita lihat cara fungsi maya berfungsi. Apabila kita memanggil kaedah ganti kelas anak melalui rujukan jenis induknya, maka jenis atau rujukan objek menunjukkan kaedah yang akan digunakan. Kesimpulan keputusan ini berlaku semasa masa jalan selepas penyusunan. Jadi, kefungsian fungsi maya ditindih oleh kelas anak yang diwarisi daripada jenis yang sama.

Beberapa Perkara Berkenaan Fungsi Maya:

  • Fungsi kelas anak dan induk mesti mempunyai nama yang sama dan mempunyai parameter yang sama.
  • IS-Perhubungan adalah wajib (warisan).
  • Fungsi maya tidak boleh peribadi kerana kami tidak boleh mengatasi kaedah peribadi kelas induk.
  • Fungsi maya tidak boleh dinyatakan sebagai Akhir, kerana kami tidak boleh mengatasi kaedah Akhir.
  • Fungsi maya tidak boleh dinyatakan sebagai Statik, kerana kami tidak boleh mengatasi kaedah statik.

Contoh Fungsi Maya dalam Java

Kami akan membincangkan beberapa contoh kod Fungsi Maya di sini.

Contoh #1

Dalam contoh ini, kami akan menunjukkan cara fungsi maya showMe() memaparkan teks yang berbeza bergantung pada rujukan objek yang dikaitkan dengannya. Apabila ia dikaitkan dengan jenis "Kepala", ia menunjukkan mesej daripada kelas induk. Apabila ia dikaitkan dengan jenis "Bawahan", ia menunjukkan mesej daripada kelas kanak-kanak.

Kod:

class Head {
public void showMe() {
System.out.println("I am Head");
}
}
class Subordinate extends Head {
@Override
public void showMe() {
System.out.println("I am Subordinate ");
}
}
public class VirtualFuntionDemo {
public static void main(String args[]) {
Head superObject = new Head();
superObject.showMe(); //method of super class or parent class is called
Head subObject = new Subordinate(); // upcasting
subObject.showMe();//method of sub class or child class is called by Parent reference, this is called "Virtual function"
Subordinate subObject2 = new Subordinate();
subObject2.showMe(); //method of sub class or child class is called
}
}

Output:

Fungsi Maya di Jawa

Contoh #2

Mari kita ambil contoh fungsi maya dalam kes pewarisan berbilang peringkat. Dalam contoh ini, kita mempunyai dua peringkat pewarisan diambil kira. Dalam contoh ini, kami akan menunjukkan cara pentadbiran fungsi maya() memaparkan mesej berbeza bergantung pada jenis objek yang dikaitkan dengannya. Apabila ia dikaitkan dengan jenis "Negeri", ia menunjukkan mesej daripada kelas induk. Apabila ia dikaitkan dengan jenis "Daerah", ia menunjukkan mesej daripada kelas anaknya. Sekali lagi dalam peringkat kedua warisan, apabila dikaitkan dengan jenis "Perbandaran", ia menunjukkan mesej daripada kelas anak induknya, kelas "Daerah".

Kod:

class State{
void administartion() {
System.out.println("This is under state govt.");
}
}
class District extends State{
void administartion(){
System.out.println("This is under District Magistrate");
}
}
class Municipality extends District{
void administartion(){
System.out.println("This is under Mayor ");
}
}
public class VirtualFunctionDemo2 {
public static void main(String args[]){
State superObject=new State ();
State subObject=new District ();
State sub2Object=new Municipality ();
superObject. administartion ();
subObject.administartion (); // run time polymorphism occurs in virtual function happening in first level of heritance
sub2Object.administartion (); // run time polymorphism occurs in virtual function happening in 2nd level of heritance
}
}

Output:

Fungsi Maya di Jawa

Contoh #3

Mari kita ambil satu lagi contoh polimorfisme masa larian dalam kes pewarisan berbilang peringkat. Dalam contoh ini, kita mempunyai tiga peringkat pewarisan diambil kira. Dalam contoh ini, kami akan menunjukkan cara fungsi maya whoami() memaparkan ciri yang berbeza bergantung pada jenis objek yang dikaitkan dengannya. Apabila ia dikaitkan dengan jenis "Kereta", ia menunjukkan mesej daripada kelas induk. Apabila ia dikaitkan dengan jenis "SUV", ia menunjukkan mesej daripada kelas anaknya. Sekali lagi dalam peringkat kedua warisan, apabila dikaitkan dengan jenis "MPV", ia menunjukkan mesej daripada kelas anak induknya, kelas "SUV". Sekali lagi dalam peringkat ketiga warisan, apabila dikaitkan dengan jenis "Hatchback", ia menunjukkan mesej daripada kelas anak induknya, kelas "MPV".

Kod:

class Cars{
void whoami() {
System.out.println("This is Car");
}
}
class SUV extends Cars{
void whoami(){
System.out.println("This is SUV");
}
}
class MPV extends SUV{
void whoami(){
System.out.println("This is MPV");
}
}
class Hatchback extends MPV{
void whoami(){
System.out.println("This is hatchback");
}
}
public class VirtualFunctionDemo3 {
public static void main(String args[]){
Cars superObject=new Cars();
Cars subObject=new SUV();  // object of child type : 1st level heritance
Cars sub2Object=new MPV();  // object of child type : 2nd level heritance
Cars sub3Object=new Hatchback();  // object of child type : 3rd level heritance
superObject.whoami();
subObject.whoami();  //run time polymorphism occurs in virtual function happening in first level of heritance
sub2Object.whoami(); //run time polymorphism occurs in virtual function  happening in second level of heritance
sub3Object.whoami(); //run time polymorphism occurs in virtual function  happening in third level of heritance
}
}

Output:

Fungsi Maya di Jawa

Kesimpulan

Ini menyimpulkan pembelajaran kami tentang topik "Fungsi Maya di Jawa". Tulis sendiri kod yang disebutkan dalam contoh di atas dalam pengkompil java dan sahkan output. Pembelajaran kod akan menjadi tidak lengkap jika anda tidak akan menulis kod sendiri.

Atas ialah kandungan terperinci Fungsi Maya di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn