Kelas Inheritance Sebuah kelas dapat mempunyai satu atau
Kelas
Inheritance • Sebuah kelas dapat mempunyai satu atau beberapa keturunan • Kelas anak dapat mewarisi property dan metode dari kelas induknya • Dengan konsep pewarisan, maka jika ada sifat (property atau metode) yang sama keturunan satu dengan yang lain, dalam pemrograman nya cukup ditulis satu untuk semua • Cara menyatakan kelas turunan menggunakan keyword extends
class Bangundatar{ void luas(){ } //kelas induk void keliling(){ } } class Bujursangkar extends Bangundatar{ int sisi; } class Lingkaran extends Bangundatar{ int jari; } class Segitiga extends Bangundatar{ int panjang, lebar; } //kelas anak
Polimorfisme • Polimorfisme adalah kelas anak yang memiliki nama metode yang sama dengan kelas induknya tetapi bentuknya berbeda • Polimorfisme dapat dilakukan dengan overriding atau overloading
Overriding • Overriding dilakukan jika kelas anak mengambil sifat induk lalu divariasi sesuai sifat anak • Caranya dengan membuat ulang metode pada kelas anak • Metode overriding dibuat dengan menambahkan anotasi @override di atas nama metode atau sebelum pembuatan metode • Namun override bisa menimbulkan penulisan metode berulang-ulang • Untuk mengatasinya maka dilakukan polimorfisme
Overloading • Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai dua atau lebih method dengan nama yang sama, yang membedakan adalah parameternya. • Pada method overloading perbedaan parameter mencakup : – Jumlah parameter – Tipe data dari parameter – Urutan dari tipe data parameter
package Pertemuan 10; class Bangundatar{ int luas(){ return 0; } void keliling(int sisi){ } } overriding class persegi extends Bangundatar{ int k; @Override void keliling(int sisi){ k = 4*sisi; System. out. println(k); } overloading void keliling(int p, int l){ k = 2*(p+l); System. out. println(k); } } Program bersambung ↓
Program sambungan ↓ public class Pertemuan 10{ public static void main(String[] args) {persegi bujursangkar = new persegi(); bujursangkar. keliling(7); persegipanjang = new persegi(); persegipanjang. keliling(5, 4); }}
package Pertemuan 10; class pegawai { int gapok() {return 1000000; } int lembur(int jam) {int tarif=20000; return jam*tarif; } void gaji() { double hitunggaji= gapok() +lembur(2); System. out. println(hitunggaji); } int honor() {return 50000; } pegawai() { } pegawai(char gol) { } } class magang extends pegawai { int honor() { return 20000; } } public class Pertemuan 10 { public static void main(String[] args) { pegawai tetap = new pegawai(); pegawai kontrak = new pegawai(); magang pkl = new magang(); int jumhar = 26; tetap. gaji(); kontrak. gaji(); System. out. println(kontrak. honor()); System. out. println(pkl. honor()); } }
Latihan 1. 2. 3. 4. 5. 6. 7. 8. 9. Apa nama superclass(kelas induk)? Apa nama subclass(kelas anak) Ada berapa property pada kelas induk dan kelas anak? Ada berapa metode pada kelas induk dan kelas anak? Jika ada konstruktor, apa nama konstruktor-nya? Ada objek apa saja? Metode apa yang di-override? Metode apa yang di-overloading? Jumhar sebagai apa (variabel/property/metode/objek/ parameter)? 10. Buatlah kode untuk sebuah objek mahasiswa dengan kelas magang lalu objek mahasiswa memanggil metode honor yang kemudian dikalikan dengan jumhar dan disimpan dalam variabel uangsaku (buatlah deklarasi variabel uangsaku)
- Slides: 10