Contoh Kata Kunci 'super' (Java)

Setelah kita mengetahui apa perbedaan Superclass dan Subclass, selanjutnya kita akan membahas apa yang disebut kata kunci "super".

Apa itu kata kunci Super ?

Java mengizinkan untuk menghindari redundansi dengan menghadirkan kata kunci super. Fungsi kata kunci super untuk memanggil constructor dari kelas induk. Selain fungsi tersebut, kata kunci super digunakan untuk mengakses anggota kelas (variabel maupun method) dari kelas induk.

Super untuk Memanggil Constructor Kelas Induk

Constructor yang terdapat pada kelas induk dapat dipanggil dari kelas turunan menggunakan kata kunci super. Bentuk umum pemanggilan super:
super(daftar-parameter);
Daftar parameter adalah daftar parameter yang didefinisikan pada konstruktor kelas induk. Dalam constructor kelas turunan, super() harus ditempatkan pada bagian awal (baris pertama).

Contoh Memanggil Constructor Kelas Induk

  • Pada class Kotak:
class Kotak {
  protected double panjang;
  protected double lebar;
  protected double tinggi;
   
  //default constructor
  Kotak() {
    panjang = lebar = tinggi = 0;
  }
   
  Kotak(int p, int l, int t) {
    panjang = p;
    lebar = l;
    tinggi = t;
  }
   
  public double hitungVolume() {
    return (panjang * lebar * tinggi);
  }   
}
  • Pada class KotakPejal (turunan dari class kotak):
class KotakPejal extends Kotak {   
  private double berat;
   
  KotakPejal(int p, int l, int t, int b) {
       
    super(p, l, t);  // memanggil constructor kelas Kotak
       
    berat = b;
  }   
   
  public double getBerat() {
    return berat;
  }
}

Super untuk Mengakses Anggota Kelas Induk

Kata kunci super dapat digunakan untuk mengakses suatu data atau method yang terdapat pada kelas induk.

Contoh Mengakses Anggota Kelas Induk:

class A {
  protected int a;
}

class B extends A {
  private int a;        // akan menimpaa yang ada dalam kelas A
   
  // constructor
  B(int nilai1, int nilai2) {
    super.a = nilai1;        // a di dalam kelas A
    a = nilai2;            // a di dalam kelas B
  }
   
  public void tampilkanNilai() {
    System.out.println("Nilai a di dalam kelas A : " + super.a);
    System.out.println("Nilai a di dalam kelas B : " + a);
  }
}

No comments:
Write komentar