Interface Poligon interface Poligon { // Deklarasi methode double Luas(); double Keliling(); String displayInfo(); } Save dengan nama file Poligon.java Class Lingkaran class Lingkaran implements Poligon { // Deklarasi atribut private double radius; private final double PI = 3.14; // Definisi method // Konstruktor public Lingkaran(double r) { radius = r; } // Selector public double getRadius() { return radius; } // Definisi method dari kelas induk public double Luas() { return (PI*radius*radius); } public double Keliling() { return (2*PI*radius); } public String displayInfo() { return ( "Lingkaran" + "\no Jari-jari: " + (float)getRadius() + "\no Luas : " + (float)Luas() + "\no Keliling : " + (float)Keliling() ); } } Save dengan nama file Lingkaran.java Class Segi Empat class SegiEmpat implements Poligon { // Deklarasi atribut private double panjang, lebar; // Definisi method // Konstruktor public SegiEmpat(double p, double l) { panjang = p; lebar = l; } // Selector public double getPanjang() { return panjang; } public double getLebar() { return lebar; } // Definisi method dari kelas induk public double Luas() { return (panjang*lebar); } public double Keliling() { return (2*(panjang+lebar)); } public String displayInfo() { return ( "Segi Empat" + "\no Panjang : " + (float)getPanjang() + "\no Lebar : " + (float)getLebar() + "\no Luas : " + (float)Luas() + "\no Keliling : " + (float)Keliling() ); } } Save dengan nama file SegiEmpat.java Class Segitiga import java.lang.Math; class SegiTiga implements Poligon { // Deklarasi atribut private double alas, tinggi; // Definisi method // Konstruktor public SegiTiga(double a, double t) { alas = a; tinggi = t; } // Selector public double getAlas() { return alas; } public double getTinggi() { return tinggi; } // Definisi method dari kelas induk public double Luas() { return (alas*tinggi)/2; } public double Keliling() { double d; d = (double)Math.sqrt((alas*alas)+(tinggi*tinggi)); return (alas+tinggi+d); } public String displayInfo() { return ( "Segi Tiga" + "\no Alas : " + (float)getAlas() + "\no Tinggi : " + (float)getTinggi() + "\no Luas : " + (float)Luas() + "\no Keliling : " + (float)Keliling() ); } } Save dengan nama file SegiTiga.java Class Utama // Program utama class TesPoligon { public static void main(String args[]) { // Deklarasi array Poligon p[] = new Poligon[4]; SegiEmpat se = new SegiEmpat(17,8); SegiTiga sg = new SegiTiga(21,4); Lingkaran lg = new Lingkaran (10); Lingkaran lh = new Lingkaran (7); //bentuk polimorfisme p[0] = se; p[1] = sg; p[2] = lg; p[3] = lh; Lingkaran x = new Lingkaran(8); // Display informasi for (int i=0; i < p.length; i++) { System.out.println("\n"+p[i].displayInfo()); } } } Save dengan nama file TesPoligon.java Cara menjalankan program : 1. Save semua file di atas 2. Jalankan satu persatu filenya terlebih dahulu 3. Apabila sudah jalan semua jalankan program utama TesPoligon.java Output Program Jadi intinya pada program di atas adalah Class Poligon mempunyai bentuk bentuk banyak dari class segitiga, class segi empat dan kelas lingkaran.