ABSTRACT CLASS, INTERFACE, INNER
CLASS
A.
Abstract class.
Abstract kelas adalah suatu kelas
yang dinyatakan abstract, umumnya
memiliki suatu atau lebih abstract method. Abstract method adalah suatu method
yang memiliki implementasi dan menggunakan modifier abstract. Abstract kelas
biasanya dijadikan parent/ super class dari class yang dapat membuat objek,
abstract kelas tidak dapat diinstansi.
Defenisi kelas diletakkan dalam
masing- masing turunan. Dalam hal ini setiap kelas turunan harus mendefenisikan
metode yang tergolong sebagai meode abstract.
B.
Interface.
Interface adalah suatu kelas yang
berisi method tanpa implementasi, namun tanpa modifier abstract, apabila suatu
interface memiliki atribut, maka atributnya akan berlaku sebagai konstanta.
Interface menyerupai kelas,
perbedaannya, kata kunci interface menggantikan kedudukan kata kunci class.
Penentu akses public biasanya
digunakan dengan tujuan agar interface dapat diakses oleh kelas manapun. Jika
tidak ada penentu akses public, interface hanya dapat diakses oleh kelas yang
berada dalam paket yang sama.
C.
Inner class.
Inner class adalah kelas yang
disisipkan didalam kelas yang lain, fungsi sisipan kelas ini adalah mendukung
suatu proses yang akan dijalankan oleh kelas utamanya. Inner class bersifat
tersarang terhadap kelas utamanya.
ATRIBUT = VARIABEL
LANGKAH PRAKTIKUM
a.
MEMBUAT PROGRAM MakhlukHidup.java
public abstract
class MakhlukHidup {
protected boolean
BisaTerbang = false;
protected String
Nama;
protected int
JlhKaki;
public
MakhlukHidup(String Nama1, int JlhKaki1,boolean BisaTerbang1) {
this.Nama = Nama1;
this.JlhKaki =
JlhKaki1;
this.BisaTerbang =
BisaTerbang1;
}
abstract void
status();
public void
status() {
System.out.println(“Nama
: “+Nama);
System.out.println(“Jumlah
Kaki : “+JlhKaki);
System.out.println(“Bisa
Terbang : “+BisaTerbang);
}
}
Tidak memiliki output karena tidak memiliki fungsi utama.

b. MEMBUAT
PROGRAM Manusia.java
public class Manusia extends MakhlukHidup {
Manusia(String nama) {
super(nama, 2, false);
}
public void bernafas() {
System.out.println(“nama+”bernafas dengan menghirup O2”);
}
public statis void main(String[] args) {
Manusia m = new Manusia(“Sayuti”);
m.status();
m.bernafas();
}
}
Outputnya :
Nama : Sayuti
Jumlah kaki : 2
Bisa terbang : false
Sayuti bernafas dengan menghirup
O2

c. MEMBUAT
PROGRAM Tumbuhan.java
public class Tumbuhan extends MakhlukHidup {
Tumbuhan (String nama) {
super(nama, 0, false);
}
public void bernafas() {
System.out.println(nama+”bernafas dengan menghirup CO2”);
}
public static void main (String[] args) {
Tumbuhan t = new Tumbuhan(”Bayam”);
t.status();
t.bernafs();
}
}
outputnya :
nama : Bayam
jumlah kaki : 0
bisa terbang ; false
Bayam “bernafas dengan menghirup
CO2”

d. MEMBUAT
PROGRAM Pekerjaan.java
interface Pekerjaan {
public void namaPekerjaan() ;
public void gaji();
}
Program ini tidak menghasilkan
output karena tidak memiliki fungsi utama.

e. MEMBUAT
PROGRAM Sasya.java
public class Sasya extends Manusia implementasi Pekerjaan {
public Sasya() {
super (“Sasya”);
}
public void
namaPekerjaan() {
System.out.println(“Pekerjaan : Sekretaris”);
}
public void gaji() {
System.out.println(“Gaji : Rp. 3.000.000”);
}
public static void main (String[] args) {
Sasya s = new Sasya();
s.status();
s.bernafas();
s.namaPekerjaan();
s.gaji();
}
}
Outputnya :
Nama : Sasya
Jumlah kaki : 2
Bisa terbang : false
Sasya bernafas dengan menghirup
O2
Gaji : 3.000.000

f.
MEMBUAT PROGRAM
JantungManusia.java
class orang {
private int jumlkaki = 2;
public void dengarBunyiJantung() {
Jantung j = new Jantung();
j.bunyiJantung();
}
public void
tahanNafas() {
System.out.println(“Jantung berhenti berdetak!”);
}
//inner class
Class Jantung {
public void bunyiJantung() {
System.out.println(“deg...deg...deg...”);
}
public void istirahat() {
System.out.println(“Silangkan ke “+jumlKaki+” kaki.”);
tahanNafas() ;
}
}
}
}
Class JantungManusia {
public static void main (String[] args) {
Orang.o = new orang() ;
Orang.Jantung.p = o.new Jantung() ;
o.dengarBunyiJantung() ;
p.istirahat();
}
}

Tidak ada komentar:
Posting Komentar