Inheritance (Pewarisan) • Suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy • Penting untuk Reusability • Java Keyword: extends Sepeda.java public class Sepeda{ int kecepatan ; int gir ; // method void ubahGir(int pertambahanGir) { gir= gir+ pertambahanGir; System.out.println("Gir:" + gir); } void tambahKecepatan(int pertambahanKecepatan) { kecepatan = kecepatan+ pertambahanKecepatan; System.out.println("Kecepatan:" + kecepatan); } } Class SepedaGunung Mewarisi Class Sepeda class SepedaGunung extends Sepeda{ class SepedaGunungBeraksi { public static void main(String[] args) { // Membuat object SepedaGunung spd= new SepedaGunung(); public void setSadel(int nilaiSadel) { System.out.println(“Tinggi Sadel:”+ nilaiSadel); // Memanggil method di object spd.tambahKecepatan(10); spd.ubahGir(2); spd.setSadel(20); } } } } SepedaGunung.java SepedaGunungBeraksi.java class Kendaraan UML – Class Diagram Sepeda ~ ~ gir: int = 0 kecepatan: int = 0 ~ ~ tambahKecepatan(int) : void ubahGir(int) : void SepedaGunung + setSadel(int) : void SepedaGunungBeraksi + main(String[]) : void Latihan-tugas4 • Buat class MatematikaCanggih yang merupakan inherit dari class Matematika – Tambahkan method modulus(int a, int b) yang menghitung modulus dari a dan b. Operator modulus adalah % • Buat class MatematikaCanggihBeraksi yang memanggil method pertambahan, perkalian dan modulus UML – Class Diagram class Matematika Matematika ~ ~ ~ ~ hasilBagi: double hasilKali: double hasilKurang: double hasilTambah: double ~ ~ ~ ~ pembagian(double, double) : double pengurangan(double, double) : double perkalian(double, double) : double pertambahan(double, double) : double MatematikaBeraksi + MatematikaCanggih ~ modulus(double, double) : double main(String[]) : void Polymorphism Suatu object dapat memiliki berbagai bentuk Implementasi konsep polymorphism: 1. Overloading: Penggunaan satu nama untuk beberapa method yang berbeda parameter 2. Overriding: Terjadi ketika deklarasi method subclass persis sama dengan method dari superclassnya class MobilKonstruktor{ Polymorphism public – Overloading class Mobil { String warna; int tahunProduksi; public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”, 2003); mobilku.info(); public Mobil(String warna, int tahunProduksi){ this.warna = warna; this.tahunProduksi = tahunProduksi; } public Mobil(){ } void info(){ System.out.println("Warna: " + this.warna); System.out.println("Tahun: " + this.tahunProduksi); } } Mobil mobilmu = new Mobil(); mobilmu.info(); } } Polymorphism – Overloading class Lingkaran{ public buatLingkaran(){ } public buatLingkaran(int diameter){ ... } public buatLingkaran(int diameter, int x, int y){ ... } public buatLingkaran(int diameter, int x, int y, int warna, String namaLingkaran){ ... } } Polymorphism - Overriding class Sepeda{ int kecepatan ; int gir ; // method void ubahGir(int pertambahanGir) { gir= gir+ pertambahanGir; System.out.println("Gir:" + gir); } void tambahKecepatan(int pertambahanKecepatan) { kecepatan = kecepatan+ pertambahanKecepatan; System.out.println("Kecepatan:" + kecepatan); } } Class SepedaGunung Mewarisi Class Sepeda class SepedaGunung extends Sepeda { void ubahGir(int pertambahanGir) { int gir= 2*(gir+ pertambahanGir ); System.out.println("Gir:" + gir); } class SepedaGunungBeraksi { public static void main(String[] args) { // Membuat object SepedaGunung sepedaku = new sepedaGunung(); // Memanggil method di object sepedaku.tambahKecepatan(10); sepedaku.ubahGir(2); sepedaku.setSadel(20); } } } SepedaGunung.java SepedaGunungBeraksi.java Latihan-tugas4 1. 2. 3. 4. Kembangkan class Matematika dan MatematikaBeraksi Lakukan overloading pada Method yang ada (pertambahan, pengurangan, perkalian, pembagian) . Method baru adalah bertipe data double (pecahan) dan memiliki 3 parameter Uji di kelas MatematikaBeraksi dengan parameter pecahan: 12.5, 28.7, 14.2 Misalnya: pertambahan(12.5, 28.7, 14.2) pertambahan(23, 34) Matematika.java class Matematika{ void pertambahan (int a, int b){ int hasilPertambahanBulat = a + b; System.out.println(“hasil:” + hasilPertambahanBulat); } void pertambahan (double a, double b, double c){ double hasilPertambahanPecahan = a + b + c; System.out.println(“hasil:” + hasilPertambahanPecahan); } ... }