KodeGym/Blog Jawa/Acak/Metode Overriding ing Jawa
John Squirrels
tingkat
San Francisco

Metode Overriding ing Jawa

Diterbitake ing grup
Hi! Sampeyan wis nggunakake cara Jawa lan ngerti akeh babagan. Sampeyan mbokmenawa wis ngadhepi kahanan ing ngendi siji kelas duwe akeh cara kanthi jeneng sing padha nanging beda paramèter. Sampeyan bakal kelingan manawa ing kasus kasebut, kita nggunakake metode overloading. Dina iki kita nimbang kahanan liyane. Mbayangno yen kita duwe cara sing dienggo bareng, nanging kudu nindakake perkara sing beda ing kelas sing beda. Kepiye carane nindakake prilaku iki? Kanggo ngerti, ayo nimbang kelas induk kewan , sing makili kewan, lan kita bakal nggawe cara ngomong :
public class Animal {

   public void speak() {

       System.out.println("Hello!");
   }
}
Sanadyan kita mung miwiti nulis program, sampeyan bisa uga weruh masalah potensial: ana akeh kewan ing donya, lan kabeh padha 'ngomong' beda: kucing meow, bebek quack, lan ula hisss. Cara kerjane overriding - 2Tujuan kita prasaja: supaya ora nggawe akeh cara ngomong. Tinimbang nggawe catSpeak () cara kanggo meowing, snakeSpeak () cara kanggo hissing, etc., kita arep nelpon ngandika ()cara lan duwe hiss ula, kucing meow, lan kulit asu. Kita bisa kanthi gampang entuk iki nggunakake metode overriding. Wikipedia menehi panjelasan ing ngisor iki babagan istilah 'overriding': Metode overriding, ing pemrograman berorientasi obyek, minangka fitur basa sing ngidini subclass utawa kelas anak nyedhiyakake implementasi tartamtu saka metode sing wis diwenehake dening salah sawijining superclass utawa superclass. kelas induk Sing ateges bener. Cara overriding ngijini sampeyan njupuk sawetara cara saka kelas induk lan nulis implementasine dhewe ing saben kelas anak. Implementasi anyar 'ngganti' implementasine wong tuwa ing kelas anak. Ayo ndeleng carane iki katon ing conto. Gawe 4 kelas sing marisi kelas Animal kita:
public class Bear extends Animal {
   @Override
   public void speak() {
       System.out.println("Growl!");
   }
}
public class Cat extends Animal {

   @Override
   public void speak() {
       System.out.println("Meow!");
   }
}

public class Dog extends Animal {

   @Override
   public void speak() {
       System.out.println("Woof!");
   }
}


public class Snake extends Animal {

   @Override
   public void speak() {
       System.out.println("Hiss!");
   }
}
"Iki minangka lifehack cilik kanggo masa depan: kanggo ngilangi metode kelas induk, pindhah menyang kode kelas anak ing IntelliJ IDE, Klik Ctrl + O, banjur pilih "Metode Override ..." ing menu. Biasane nggunakake tombol panas wiwit wiwitan — bakal mbantu sampeyan nulis program luwih cepet! Kanggo nemtokake prilaku sing dibutuhake, kita nindakake sawetara perkara:
  1. Ing saben kelas anak, kita nggawe metode kanthi jeneng sing padha karo metode kelas induk.

  2. Kita ngandhani kompiler yen menehi jeneng cara sing padha karo kelas induk ora kedadeyan: kita pengin ngilangi prilaku kasebut. Kanggo komunikasi karo kompiler, kita nyetel anotasi @Override ing ndhuwur metode kasebut.
    Nalika diselehake ing ndhuwur metode, anotasi @Override ngandhani kompiler (uga programer maca kode sampeyan): 'Kabeh ora apa-apa. Iki dudu kesalahan. Aku ora dadi lali. Aku ngerti yen cara kaya ngono wis ana lan aku pengin ngilangi.

  3. Kita nulis implementasine sing dibutuhake kanggo saben kelas bocah. Nalika cara ngomong () diarani, ula kudu ngempet, bruwang kudu nggereng, lsp.
Ayo ndeleng cara kerjane ing program:
public class Main {

   public static void main(String[] args) {

       Animal animal1 = new Dog();
       Animal animal2 = new Cat();
       Animal animal3 = new Bear();
       Animal animal4 = new Snake();

       animal1.speak();
       animal2.speak();
       animal3.speak();
       animal4.speak();
   }
}
Output konsol:
Woof!
Meow!
Growl!
Hiss!
Banget! Kabeh bisa digunakake minangka ngirim! We digawe 4 referensi variabel sing nyimpen obyek saka kelas induk Animal , lan kita diutus kedadean 4 kelas anak beda kanggo wong-wong mau. Akibaté, saben obyek nuduhake prilaku dhewe. Kanggo saben kelas anak, cara overridden speak () ngganti cara 'native' speak () ing kelas Animal (sing mung nampilake 'Hello!'). Cara kerjane cara overriding - 3Overriding duwe sawetara watesan:
  1. Cara sing ditimpa kudu duwe paramèter sing padha karo metode induk.

    Yen cara ngomong kelas induk duwe parameter String , metode sing ditindhes ing kelas anak uga kudu duwe parameter String . Yen ora, kompiler bakal ngasilake kesalahan:

    public class Animal {
    
       public void speak(String s) {
    
           System.out.println("Hello! " + s);
       }
    }
    
    public class Cat extends Animal {
    
       @Override // Error!
       public void speak() {
           System.out.println("Meow!");
       }
    }

  2. Cara sing ditindhes kudu nduweni jinis bali sing padha karo metode induk.

    Yen ora, kita bakal entuk kesalahan kompiler:

    public class Animal {
    
       public void speak() {
    
           System.out.println("Hello!");
       }
    }
    
    
    public class Cat extends Animal {
    
       @Override
       public String speak() {         // Error!
           System.out.println("Meow!");
           return "Meow!";
       }
    }

  3. Modifier akses ing metode sing ditimpa uga kudu padha karo metode 'asli':

    public class Animal {
    
          public void speak() {
    
                System.out.println("Hello!");
          }
    }
    
    public class Cat extends Animal {
    
           @Override
           private void speak() {      // Error!
               System.out.println("Meow!");
           }
    }
Metode overriding ing Jawa minangka salah sawijining cara kanggo ngetrapake polimorfisme (prinsip OOP sing wis diterangake ing wulangan pungkasan). Iki tegese kauntungan utama yaiku keluwesan sing padha karo sing wis dibahas sadurunge. Kita bisa mbangun sistem kelas sing prasaja lan logis, saben duwe prilaku tartamtu (asu babakan, cats meow), karo antarmuka umum - siji speak () cara kanggo wong-wong mau kabeh tinimbang akeh cara, contone dogSpeak () , speakCat () , lsp.
Komentar
  • Popular
  • Anyar
  • lawas
Sampeyan kudu mlebu kanggo ninggalake komentar
Kaca iki durung duwe komentar