Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Java - Mengganti

Pada bab sebelumnya, kita telah membahas tentang superclass dan subclass. Jika suatu kelas mewarisi metode dari superkelasnya, maka ada peluang untuk menimpa metode tersebut asalkan tidak ditandai sebagai final.

Manfaat dari override adalah:kemampuan untuk mendefinisikan perilaku yang spesifik untuk tipe subclass, yang berarti subclass dapat mengimplementasikan metode parent class berdasarkan kebutuhannya.

Dalam istilah berorientasi objek, mengesampingkan berarti mengesampingkan fungsionalitas metode yang ada.

Contoh

Mari kita lihat sebuah contoh.

Demo Langsung
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal();   // Animal reference and object
      Animal b = new Dog();   // Animal reference but Dog object

      a.move();   // runs the method in Animal class
      b.move();   // runs the method in Dog class
   }
}

Ini akan menghasilkan hasil berikut

Keluaran

Animals can move
Dogs can walk and run

Pada contoh di atas, Anda dapat melihat bahwa meskipun b adalah jenis Hewan yang menjalankan metode pindah di kelas Anjing. Alasannya adalah:Pada waktu kompilasi, pemeriksaan dilakukan pada tipe referensi. Namun, dalam runtime, JVM mengetahui tipe objek dan akan menjalankan metode yang dimiliki objek tersebut.

Oleh karena itu, pada contoh di atas, program akan dikompilasi dengan benar karena kelas Hewan memiliki metode pindah. Kemudian, pada saat runtime, ia menjalankan metode khusus untuk objek tersebut.

Perhatikan contoh berikut

Contoh

Demo Langsung
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
   public void bark() {
      System.out.println("Dogs can bark");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal();   // Animal reference and object
      Animal b = new Dog();   // Animal reference but Dog object

      a.move();   // runs the method in Animal class
      b.move();   // runs the method in Dog class
      b.bark();
   }
}

Ini akan menghasilkan hasil berikut

Keluaran

TestDog.java:26: error: cannot find symbol
      b.bark();
       ^
  symbol:   method bark()
  location: variable b of type Animal
1 error

Program ini akan memberikan kesalahan waktu kompilasi karena jenis referensi b Hewan tidak memiliki metode dengan nama kulit.

Aturan untuk Penggantian Metode

Menggunakan Kata Kunci super

Saat memanggil versi superclass dari metode yang diganti, super kata kunci digunakan.

Contoh

Demo Langsung
class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {
   public void move() {
      super.move();   // invokes the super class method
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal b = new Dog();   // Animal reference but Dog object
      b.move();   // runs the method in Dog class
   }
}

Ini akan menghasilkan hasil berikut

Keluaran

Animals can move
Dogs can walk and run

java

  1. Operator Jawa
  2. Antarmuka Jawa
  3. String Length() Metode di Java:Cara menemukan dengan Contoh
  4. Java String indexOf() Metode dengan Substring &Contoh
  5. Metode Java String charAt() dengan Contoh
  6. Metode Java String compareTo():​​Cara Menggunakan dengan Contoh
  7. String Java berisi() Metode | Periksa Substring dengan Contoh
  8. Java String EndsWith() Metode dengan Contoh
  9. Java String replace(), replaceAll() dan replaceFirst() metode
  10. Variabel Statis di Java:Apa itu Static Block &Method [Contoh]