//PROGRAM 7-16 // Mendefinisikan kelas abstract abstract class Bentuk { // method abstrak, tidak memiliki kode implementasi abstract public double luas(); } class PersegiPanjang extends Bentuk { private double panjang; private double lebar; PersegiPanjang(int p, int l) { panjang = p; lebar = l; } public double luas() { System.out.println("Dalam objek persegi panjang:"); return (panjang * lebar); } } class BujurSangkar extends Bentuk { private double sisi; BujurSangkar(int s) { sisi = s; } public double luas() { System.out.println("Dalam objek bujursangkar:"); return (sisi * sisi); } } class Segitiga extends Bentuk { private double alas; private double tinggi; Segitiga(int a, int t) { alas = a; tinggi = t; } public double luas() { System.out.println("Dalam objek segitiga:"); return ((alas * tinggi)/2); } } class Lingkaran extends Bentuk { private double jarijari; private final double PI = 3.1416; Lingkaran(int r) { jarijari = r; } public double luas() { System.out.println("Dalam objek lingkaran:"); return (PI * jarijari * jarijari); } } class DemoKelasAbstrak2 { public static void main(String[] args) { Bentuk obj; // Baris kode di bawah ini SALAH, // karena kelas abstrak tidak dapat diinstansiasi //obj = new Bentuk(); // SALAH PersegiPanjang pp = new PersegiPanjang(5, 3); BujurSangkar bs = new BujurSangkar(4); Segitiga st = new Segitiga(4, 3); Lingkaran lk = new Lingkaran(2); // obj mengacu pada objek PersegiPanjang obj = pp; // akan memanggil method yang terdapat pada PersegiPanjang System.out.println("Luas : " + obj.luas()); System.out.println(); // obj mengacu pada objek BujurSangkar obj = bs; // akan memanggil method yang terdapat pada BujurSangkar System.out.println("Luas : " + obj.luas()); System.out.println(); // obj mengacu pada objek Segitiga obj = st; // akan memanggil method yang terdapat pada Segitiga System.out.println("Luas : " + obj.luas()); System.out.println(); // obj mengacu pada objek Lingkaran obj = lk; // akan memanggil method yang terdapat pada Lingkaran System.out.println("Luas : " + obj.luas()); System.out.println(); } }