Skip to content

Latest commit

 

History

History
executable file
·
115 lines (86 loc) · 2.43 KB

abstract-class-dan-interface.md

File metadata and controls

executable file
·
115 lines (86 loc) · 2.43 KB
title author layout
Abstract Class dan Interface
@deovaliandro
default

Abstract method vs Overriding

Abstract method adalah method yang ditulis untuk diimplementasikan nantinya (harus diimplementasikan). Abstract method ini sebagai perjanjian bahwa method-method yang diberi tanda abstract merupakan method yang penting sehingga harus diimplementasikan. Manfaatnya, digunakan sebagai jembatan antar class.

Perbedaan abstract method dengan overriding - Abstract harus di implementasikan sedangkan overriding itu opsional

Untuk menggunakan abstract class didalam sebuah class, digunakan keyword abstract, dan untuk mengimplementasikannya pada class menggunakan keyword implement.

class One{
    One(){
        ...
    }

    abstract dataType theMethod();
}

class Main implement One {
    ...
}

Interface

Interface adalah kumpulan abstract method yang digabung menjadi satu class.

interface Orang{
    abstract void makan();
    abstract void suara();
    abstract void jalan();
}

class Manusia {

    private String nama, jenisKelamin;
    int umur;

    public Manusia(String nama, String jenisKelamin, int umur) {
        this.nama = nama;
        this.jenisKelamin = jenisKelamin;
        this.umur = umur;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getJenisKelamin() {
        return jenisKelamin;
    }

    public void setJenisKelamin(String jenisKelamin) {
        this.jenisKelamin = jenisKelamin;
    }

    public int getUmur() {
        return umur;
    }

    public void setUmur(int umur) {
        this.umur = umur;
    }
}

class Ayah extends Manusia implements Orang {

    public Ayah(String nama, String jenisKelamin, int umur) {
        super(nama, jenisKelamin, umur);
    }

    public void makan() {
        System.out.println("Ayah makan");
    }

    public void suara() {
        System.out.println("Ayah bersuara");
    }

    public void jalan() {
        System.out.println("Ayah berjalan");
    }
}

class Ibu extends Manusia implements Orang {

    public Ibu(String nama, String jenisKelamin, int umur) {
        super(nama, jenisKelamin, umur);
    }

    public void makan() {
        System.out.println("Ibu makan");
    }

    public void suara() {
        System.out.println("Ibu bersuara");
    }

    public void jalan() {
        System.out.println("Ibu berjalan");
    }
}