Contoh Polymorfisme di Java

polymorphism adalah salahsatu konsep OOP yang sangat penting di JAVA. kalau diterjemahkan secara bebas artinya sebuah object bisa memiliki banyak bentuk. namun tidak ada yang bisa lebih menjelaskan daripada kode :) hehe langsung saja kita buat kodenya
  • buatlah sebuah interface yang akan kita gunakan sebagai manipulasi bentuk dari object yang akan kita buat
1
2
3
4
5
public interface MahlukHidup {
void bergerak();
void makan();
void describeName();
}
interfacenya bersifat sesuai denga namanya yaitu seperti mahluk hidup, bisa bergerak, bisa makan. jadi…kelas apa saja yang meng-implement interface MahlukHidup, secara tidak langsung akan menjadi mehluk hidup (bisa makan bisa bergerak). meskipun kelasnya berbeda2, bahkan bukan kelas turunan dari mahluk hidup jika sudah meng-implement interface MahlukHidup. tak perduli dia kelas mahluk hidup atau kelas yang lain, tetapi kita coba buat beberapa kelas mahluk hidup kelas pertama seperti ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    class Manusia  implements MahlukHidup{
 
    String nama = "manusia";
 
    @Override
    public void bergerak() {
        <span class="skimlinks-unlinked">System.out.println("bergerak</span> dengan 2 kaki");
    }
 
    @Override
    public void makan() {
        <span class="skimlinks-unlinked">System.out.println("makan</span> nasi atau makanan manusia lainnya");
    }
 
    @Override
    public void describeName() {
        <span class="skimlinks-unlinked">System.out.println(nama</span>);
    }
}
    
kelas pertama adalah kelas Manusia, begitu dia meng-implement interface MahlukHidup, dia dipaksa untuk mengoverride(mendefinisikan kembali) dan mengimplement(membuat method bekerja sesuai kelasnya) method abstract yang dituliskan di interface tadi, oke kita buat kelas yang kedua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    class Kucing implements MahlukHidup{
 
    String nama = "Kucing Lucu";
 
    @Override
    public void bergerak() {
        <span class="skimlinks-unlinked">System.out.println("bergerak</span> dengan 4 kaki");
    }
 
    @Override
    public void makan() {
        <span class="skimlinks-unlinked">System.out.println("makan</span> ikan");
    }
 
    @Override
    public void describeName() {
        <span class="skimlinks-unlinked">System.out.println(nama</span>);
    }
 
}
lalu kelas yang ke tiga
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    class PohonPisang implements MahlukHidup{
 
    String nama = "Pohon Pisang";
 
    @Override
    public void bergerak() {
        <span class="skimlinks-unlinked">System.out.println("bertumbuh</span> ke atas");
    }
 
    @Override
    public void makan() {
        <span class="skimlinks-unlinked">System.out.println("makan</span> makanan berupa mineral dan sari - sari makanan dalam tanah");
    }
 
    @Override
    public void describeName() {
       <span class="skimlinks-unlinked">System.out.println(nama</span>);
    }
 
}
nah, sudah jadi.. bisa kita lihat ketiga kelas adalah kelas yang berbeda dan jelas beda keturunan. tetapi mereka menjadi punya persamaan, yaitu mereka adalah MahlukHidup karena sama2 mengimplement interface MahlukHidup. sekarang mari kita belajar dimana letak polimorphismenya , buatlah kelas Testnya seperti ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    class Poli {
 
    public static void TestMahlukHidup(MahlukHidup m){
        m.describeName();
        m.bergerak();
        m.makan();
    }
 
    public static void main(String[] args){
        MahlukHidup man = new Manusia();
        MahlukHidup kucing = new Kucing();
        MahlukHidup pohon = new PohonPisang();
 
        TestMahlukHidup(man);
        <span class="skimlinks-unlinked">System.out.println("_________________</span>");
        TestMahlukHidup(kucing);
        <span class="skimlinks-unlinked">System.out.println("_________________</span>");
        TestMahlukHidup(pohon);
        <span class="skimlinks-unlinked">System.out.println("_________________</span>");
 
    }
}
 
    
bisa kita lihat bahwa penciptaan kelas dilakukan dengan nama kelas MahlukHidup lalu kontruktornya adalah milik kelas masing2.. coba perhatikan method
1
2
3
4
5
6
public static void TestMahlukHidup(MahlukHidup m){
    m.describeName();
    m.bergerak();
    m.makan();
}
method ini meminta input parameter merupa MahlukHidup. dan menjalankan method dari MahlukHidup. dan yang kita masukkan adalah object dari kelas – kelas yang berbeda, yaitu man, kucing, pohon. secara otomatis mereka akan menjalankan methodnya yang spesifik untuk jenis kelas mereka :).. yaa kira2 seperti itulah salah satu contoh polimorphisme :)
semoga ada manfaatnya, jika ada pertanyaan atau saran silahkan comment :)

0 Responses to "Contoh Polymorfisme di Java"