Pemrograman JAVA (TIB09) Inheritance, Interface, Abstract Class, Inner Class
Materi pembahasan Inheritance Pengertian Superclass Keyword super Keyword this Overriding, keyword final Modifier public, protected dan private Abstract Class Abstract Method Interface, keyword interface dan implements Inner Class, static Inner Class
Inheritance Pewarisan suatu class pada class lainnya Semua method dan atribut diwariskan pada class yang melakukan extend pada class tersebut Keyword untuk melakukan pewarisan: extends Contoh: public class Contoh extends KelasLain { }
Contoh Inheritance
this vs super Keyword this mengacu pada atribut dan method yang terdapat pada class ybs Contoh: this.cetak() Keyword super mengacu pada atribut dan method yang terdapat pada class parentnya. super.cetak()
Overriding Penyediaan Method ataupun atribut pada suatu class yang melakukan extends ke class parent yang dimana class parent juga mempunyai method ataupun attribut dengan nama tersebut Untuk mengakses method ataupun attribut dari parent gunakan keyword super Contoh: super.cetak(); Superclass adalah class yang diextends oleh suatu class Ketika suatu instance melakukan suatu override method, maka yang dikerjakan adalah method dari class pembentuknya (bukan dari super class)
Final Class Class yang tidak boleh di extends lagi dapat dibuat dengan menambahkan keyword final Contoh: public final class KelasFinal {...} Contoh final class dalam java package: java.lang.System java.lang.String
Final Method Method yang tidak dapat di override oleh sub class Contoh deklarasi: public final void contohFinalMethod() {...}
Final Variabel Variabel Final adalah variabel yang hanya dapat diinisialisasi satu kali saja. Contoh deklarasi: public final double nilaiEuler;
Abstract Class Class dengan details yang belum diketahui dengan jelas. Belum mempunyai implementasi dari method-methodnya, hanya mempunyai header dari method-methodnya (sering disebut signature) Tidak dapat langsung dibuat instance class harus di buat concrete class terlebih dahulu dengan di extends Dalam Abstract class dapat dibuat abstract method dan concrete method Abstract Method harus di buat implementasinya pada concrete class yang meng extends abstract class tsb Karena menggunakan keyword extends, Sebuah class hanya dapat mengextends satu buah abstract class saja. Untuk membuat abstract class dan abstract method, gunakan keyword abstract.
Deklarasi Abstract Class Contoh Deklarasi: public abstract class ContohAbstractClass { public abstract void contohAbstractMethod(); public void methodBeneranNih() System.out.println(“ini dicetak dari method beneran lho”); }
Interface Hampir sama seperti abstract class, hanya berisi nama-nama method saja tanpa implementasi Sebuah dapat mengimplementasikan lebih dari satu Interface. Menggunakan keyword interface. Deklarasi public interface NamaInterface { public void method1(); public void method2(); … public void method-ke-n(); }
Implementasi interface Class yang mengimplementasikan class interface berisi implementasi dari method-method Menggunakan keyword implements. Contoh: public class Contoh implements NamaInterface { public void method1() {…} public void method2() {…} … public void method-ke-n() {…} } Suatu class dapat mengimplementasikan lebih dari satu interface contoh public class Contoh implements NamaInterface1, NamaInterface2 {…}
Inner Class Class yang didefinisikan dalam class yang sudah ada. Contoh: Class ContohClass { class ContohInnerClass void cetak() System.out.println(“ini dicetak dari InnerClass”); }
Batasan Inner Class Dapat mengakses method dan atribut dari class induk nya Class induk tidak dapat mengakses secara langsung method dan atribut dari inner class nya. inner class harus di instance terlebih dahulu jika akan mengakses method dan atributnya. Hasil kompilasi suatu class yang berisi inner class selain akan menghasilkan file class nya sendiri, juga akan menghasilkan file class dari inner class didalamnya dengan susunan nama: NamaClassInduk$NamaInnerClass.class
Contoh Inner Class public class Contoh { private int contohVariabel; ContohInnerClass a = new ContohInnerClass(); public void mengaksesInnerclass() a.cetak(); } class ContohInnerClass void cetak() contohVariabel = 10; System.out.println(“Cetak dari Inner Class”+contohVariabel);
Static Inner Class Sama seperti Static class, suatu static inner class juga tidak perlu dibuat objeknya untuk mengaksesnya. Contoh: Pada ContohClass.java public class ContohClass { static ContohInnerClass void cetak() System.out.println(“Cetak Dari Static InnerClass”); } Pada class yang memanggil Class ContohClass public class PanggilClass public static void main(String[] args) ContohClass.ContohInnerClass contohObjek = new ContohClass.ContohInnerClass(); contohObjek.cetak();