Project polimorfisme :
package polimorfisme; interface Poligon { // Deklarasi methode double Luas(); double Keliling(); String displayInfo(); }
package polimorfisme;
class Lingkaran implements Poligon { // Deklarasi atribut Nita Oktavia_201143501480
1
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"
Nita Oktavia_201143501480
2
+ "\no Jari-jari: " + (float)getRadius() + "\no Luas
: " + (float)Luas()
+ "\no Keliling : " + (float)Keliling() ); } }
package polimorfisme; import java.lang.Math;
class SegiTiga implements Poligon { // Deklarasi atribut private double alas, tinggi; // Konstruktor public SegiTiga(double a, double t) { alas = a; tinggi = t; } public double getAlas() { return alas; }
public double getTinggi() { return tinggi; } public double Luas() {
Nita Oktavia_201143501480
3
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() ); } }
package polimorfisme;
class SegiEmpat implements Poligon { // Deklarasi atribut private double panjang, lebar;
// Definisi method
Nita Oktavia_201143501480
4
// Konstruktor public SegiEmpat(double p, double l) { panjang = p; lebar = l; }
// Selector public double getPanjang() { return panjang; }
public double getLebar() { return lebar; } public double Luas() { return (panjang*lebar); }
public double Keliling() { return (2*(panjang+lebar)); }
public String displayInfo() { return ( "Segi Empat" + "\no Panjang : " + (float)getPanjang()
Nita Oktavia_201143501480
5
+ "\no Lebar : " + (float)getLebar() + "\no Luas
: " + (float)Luas()
+ "\no Keliling : " + (float)Keliling() ); } }
package polimorfisme;
// 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;
Nita Oktavia_201143501480
6
Lingkaran x = new Lingkaran(8);
// Display informasi for (int i=0; i < p.length; i++) { System.out.println("\n"+p[i].displayInfo()); } } }
Output :
Nita Oktavia_201143501480
7
package polimorfisme; import java.*; import java.io.*; /*class induk dengan nama Bentukwajah*/ class Bentukwajah { /*Membuat sebuah method respons pada class induk dimana mengembalikan *sebuah nilai String*/ public String respons() { return("Perhatikan reaksi wajah saya\n"); } } /*Membuat class-class lain dengan turunan dari class Bentukwajah*/ class Senyum extends Bentukwajah { public String respons() { return("Senyum karena senang\n"); } } class Tertawa extends Bentukwajah { public String respons() {
Nita Oktavia_201143501480
8
return("Tertawa karena gembira\n"); } } class Marah extends Bentukwajah { public String respons() { return("kemarahan disebabkan bertangkar\n"); } } class Sedih extends Bentukwajah { public String respons() { return("Sedih disebabkan cemburu\n"); } }
package polimorfisme; //program utama public class Programpolimorphis { /**Main method*/ public static void main(String []args) {
Nita Oktavia_201143501480
9
System.out.println("\n Program Polimorphis"); System.out.println("======================"); //membuat objek-objek raut(ekspresi) dari wajah Bentukwajah objbentuk=new Bentukwajah(); Senyum objsenyum=new Senyum(); Tertawa objtertawa=new Tertawa(); Marah objmarah=new Marah(); Sedih objsedih=new Sedih(); //polimorphis dari bentuk wajah ada 5 dimulai dari 0-4 Bentukwajah []Bentuk=new Bentukwajah[5]; Bentuk[0]=objbentuk; Bentuk[1]=objsenyum; Bentuk[2]=objtertawa; Bentuk[3]=objmarah; Bentuk[4]=objsedih; System.out.println("Bentuk[0]:"+Bentuk[0].respons()); System.out.println("Bentuk[1]:"+Bentuk[1].respons()); System.out.println("Bentuk[2]:"+Bentuk[2].respons()); System.out.println("Bentuk[3]:"+Bentuk[3].respons()); System.out.println("Bentuk[4]:"+Bentuk[4].respons()); } }
Nita Oktavia_201143501480
10
Output :
Nita Oktavia_201143501480
11