A. ABSTRACT CLASS
Abstract Class adalah suatu kelas yang dinyatakan abstract, umumnya memiliki suatu atau lebih abstract
method. Abstract method adalah nama method yang memiliki implementasi
dan menggunakan modifier abstract. Abstract class biasanya dijadikan
parent/ super class dari kelas-kelas yang dapat membuat objek, abstract
class tidak dapat diintansiasi. Defenisi kelas diletakkan dalam
masing-masing kelas turunan. Dalam hal ini setiap kelas turunan harus
mendefenisikan metode-metode yang tergolong sebagai metode abstract.
B. INTERFACE
Interface adalah suatu kelas yang berisi method-method tanpa
implementasi, namun tanpa modifier abstract, apabla suatu interface
memiliki atribut, maka atributnya akan berlaku sebagai konstanta.
Interface menyerupai kelas. Perbedaanya, kata kunci interface
menggantikan kedudukan kata kunci class. Bentuk deklrasinya adalah
sebagai berikut:
Penentu akses public biasa digunakan dengan tujuan agar interface
dapat diakses oleh kelas manapun. Jika tak ada penentu akses public,
interface hanya dapat diakses oleh kelas-kelas yang berada dalam paket
yang sama.
C. INNER CLASS
Inner Class adalah kelas yang disisipkan di dlam kelas yang lain.
fungsi kelas sisipan ini adalah mendukung suatu proses yang akan
dijalankan oleh suatu kelas utamanya. Inner class bersifat terserang
terhadap kelas-kelas utamnya
CONTOH PROGRAM
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 bernafas();
public void status(){
System.out.println(Nama+" bernafas dengan menghirup CO2");
System.out.println("------------------------------------");
System.out.println("Nama : " +Nama);
System.out.println("Jumlah Kaki : " +JlhKaki);
System.out.println("BisaTerbang : " +BisaTerbang);
}
}
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 bernafas();
public void status(){
System.out.println(Nama+" bernafas dengan menghirup CO2");
System.out.println("------------------------------------");
System.out.println("Nama : " +Nama);
System.out.println("Jumlah Kaki : " +JlhKaki);
System.out.println("BisaTerbang : " +BisaTerbang);
}
}
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 static void main(String[]arg){
Manusia m = new Manusia ("Sayuti");
m.status();
m.bernafas();
}
}
Manusia(String nama){
super(nama,2,false);
}
public void bernafas(){
System.out.println(Nama+" bernafas dengan menghirup O2");
}
public static void main(String[]arg){
Manusia m = new Manusia ("Sayuti");
m.status();
m.bernafas();
}
}
C. MEMBUAT PROGRAM Tumbuhan.java
public class Tumbuhan extends MakhlukHidup{
Tumbuhan(String nama){
super(nama,0,false);
}
public void bernafas(){
}
public static void main(String[]arg){
Tumbuhan t = new Tumbuhan ("Bayam");
t.status();
t.bernafas();
}
}
Tumbuhan(String nama){
super(nama,0,false);
}
public void bernafas(){
}
public static void main(String[]arg){
Tumbuhan t = new Tumbuhan ("Bayam");
t.status();
t.bernafas();
}
}
D. MEMBUAT PROGRAM Pekerjaan.java
interface Pekerjaan {
public void namaPekerjaan() ;
public void gaji ();
}
public void namaPekerjaan() ;
public void gaji ();
}
E. MEMBUAT PROGRAM Sasya.java
public class Sasya extends Manusia implements 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[]arg){
Sasya s = new Sasya ();
s.status();
s.bernafas();
s.namaPekerjaan();
s.gaji();
}
}
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[]arg){
Sasya s = new Sasya ();
s.status();
s.bernafas();
s.namaPekerjaan();
s.gaji();
}
}
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 istrahat(){
System.out.println("silangkan ke "+jumlKaki+" kaki.");
tahanNafas();
}
}
}
class JantungManusia{
public static void main(String[]arg){
Orang o = new Orang();
Orang.Jantung p = o.new Jantung();
o.dengarBunyiJantung();
p.istrahat();
}
}
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 istrahat(){
System.out.println("silangkan ke "+jumlKaki+" kaki.");
tahanNafas();
}
}
}
class JantungManusia{
public static void main(String[]arg){
Orang o = new Orang();
Orang.Jantung p = o.new Jantung();
o.dengarBunyiJantung();
p.istrahat();
}
}