Staffsite STMIK PPKIA Pradnya Paramita
PEWARISAN
Pertemuan 7
Definisi Pewarisan
Salah satu ciri pemrograman berorientasi
objek.
Suatu kelas dapat diturunkan lagi menjadi
kelas-kelas baru lainnya sehingga dapat
membentuk sebuah hirarki.
Kelas turunan akan mewarisi sifat-sifat yang
terdapat pada kelas induknya.
Superclass dan Subclass
Kelas induk yang diturunkan disebut dengan
superclass
Kelas baru hasil turunan disebut dengan
subclass
Selain mewarisi sifat-sifat dari superclass,
subclass dapat memiliki sifat-sifat spesifik.
Contoh Pewarisan
Binatang
Herbivora
Membuat Subclass
Java menyediakan kata kunci “extends” yang
digunakan untuk melakukan proses
penurunan terhadap suatu kelas.
Bentuk umum dari penggunaan “extends”
sebagai berikut:
class nama-subclass extends nama-superclass
{
//badan kelas
}
class A {
private int a;
public void setA(int nilai) {
a = nilai;
}
public int getA() {
return a;
}
}
//membuat kelas turunan (subclass) dari kelas A
class B extends A {
private int b;
public void setB(int nilai) {
b = nilai;
}
public int getB() {
return b;
}
}
//membuat kelas turunan (subclass) dari kelas B
class C extends B {
private int c;
public void setC(int nilai) {
c = nilai;
}
public int getC() {
return c;
}
}
Kata Kunci “SUPER”
Antara subclass dan subclass terakang
memiliki data dan parameter yang sama, hal
ini bisa menyebabkan redudansi
Untuk menghindari redudansi, dapat
digunakan kata kunci “super”
Contoh:
KotakPejal (int p, int l, int t, int v) {
super(p, l, t);
berat = b;
}
Penggunaan super
Dapat memanggil parameter (seluruh data)
yang terdapat pada kelas induk.
Dapat memanggil sebagian data atau method
yang merupakan anggota dari kelas Induk.
Dalam contructor kelas turunan, super() harus
ditempatkan pada bagian awal (baris
pertama)
class Kotak {
protected double panjang;
protected double lebar;
protected double tinggi;
//default contructor
Kotak() {
panjang = lebar = tinggi = 0;
}
Kotak(int p, int l, int t) {
panjang = p;
lebar = l;
tinggi = t;
}
public double hitungVolume() {
return (panjang * lebar * tinggi);
}
}
class KotakPejal extends Kotak {
private double berat;
KotakPejal(int p, int l, int t, int b) {
super(p, l, t);//memanggil contructor kelas Kotak
berat = b;
}
public double getBerat() {
return berat;
}
}
class DemoSuper1 {
public static void main(String[] args) {
class A {
protected int a;
}
class B extends A {
private int a;//akan menimpa nilai a hasil turunan dari kelas A
//contructor
B(int nilai1, int nilai2) {
super.a = nilai1;//a di dalam kelas A
a = nilai2;//a di dalam kelas B
}
public void tampilkanNilai() {
System.out.println("Nilai a di dalam kelas A : " + super.a);
System.out.println("Nilai a di dalam kelas A : " + a);
}
}
class DemoSuper3 {
public static void main(String[] orgs) {
B obj = new B(121, 212);
obj.tampilkanNilai();
}
}
Polimorfisme
Kemampuan suatu objek untuk mengungkap
banyak hal melalui satu cara yang sama
Dalam polimorfisme, kelas induk
mendefinisikan sebuah method general
(bersifat umum) untuk semua kelas
turunannya
Kelas-kelas turunanya dapat memperbarui
implementasi dari mthod tersebut secara
lebih spesifik sesuai dengan karakteristik
masing-masing kelas
class Bentuk {
public double luas() {
System.out.println("tidak didefinisikan");
return 0;
}
}
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 bujur sangkar: ");
return (sisi * sisi);
}
}
class demoPolimorfisme2 {
Pertemuan 7
Definisi Pewarisan
Salah satu ciri pemrograman berorientasi
objek.
Suatu kelas dapat diturunkan lagi menjadi
kelas-kelas baru lainnya sehingga dapat
membentuk sebuah hirarki.
Kelas turunan akan mewarisi sifat-sifat yang
terdapat pada kelas induknya.
Superclass dan Subclass
Kelas induk yang diturunkan disebut dengan
superclass
Kelas baru hasil turunan disebut dengan
subclass
Selain mewarisi sifat-sifat dari superclass,
subclass dapat memiliki sifat-sifat spesifik.
Contoh Pewarisan
Binatang
Herbivora
Membuat Subclass
Java menyediakan kata kunci “extends” yang
digunakan untuk melakukan proses
penurunan terhadap suatu kelas.
Bentuk umum dari penggunaan “extends”
sebagai berikut:
class nama-subclass extends nama-superclass
{
//badan kelas
}
class A {
private int a;
public void setA(int nilai) {
a = nilai;
}
public int getA() {
return a;
}
}
//membuat kelas turunan (subclass) dari kelas A
class B extends A {
private int b;
public void setB(int nilai) {
b = nilai;
}
public int getB() {
return b;
}
}
//membuat kelas turunan (subclass) dari kelas B
class C extends B {
private int c;
public void setC(int nilai) {
c = nilai;
}
public int getC() {
return c;
}
}
Kata Kunci “SUPER”
Antara subclass dan subclass terakang
memiliki data dan parameter yang sama, hal
ini bisa menyebabkan redudansi
Untuk menghindari redudansi, dapat
digunakan kata kunci “super”
Contoh:
KotakPejal (int p, int l, int t, int v) {
super(p, l, t);
berat = b;
}
Penggunaan super
Dapat memanggil parameter (seluruh data)
yang terdapat pada kelas induk.
Dapat memanggil sebagian data atau method
yang merupakan anggota dari kelas Induk.
Dalam contructor kelas turunan, super() harus
ditempatkan pada bagian awal (baris
pertama)
class Kotak {
protected double panjang;
protected double lebar;
protected double tinggi;
//default contructor
Kotak() {
panjang = lebar = tinggi = 0;
}
Kotak(int p, int l, int t) {
panjang = p;
lebar = l;
tinggi = t;
}
public double hitungVolume() {
return (panjang * lebar * tinggi);
}
}
class KotakPejal extends Kotak {
private double berat;
KotakPejal(int p, int l, int t, int b) {
super(p, l, t);//memanggil contructor kelas Kotak
berat = b;
}
public double getBerat() {
return berat;
}
}
class DemoSuper1 {
public static void main(String[] args) {
class A {
protected int a;
}
class B extends A {
private int a;//akan menimpa nilai a hasil turunan dari kelas A
//contructor
B(int nilai1, int nilai2) {
super.a = nilai1;//a di dalam kelas A
a = nilai2;//a di dalam kelas B
}
public void tampilkanNilai() {
System.out.println("Nilai a di dalam kelas A : " + super.a);
System.out.println("Nilai a di dalam kelas A : " + a);
}
}
class DemoSuper3 {
public static void main(String[] orgs) {
B obj = new B(121, 212);
obj.tampilkanNilai();
}
}
Polimorfisme
Kemampuan suatu objek untuk mengungkap
banyak hal melalui satu cara yang sama
Dalam polimorfisme, kelas induk
mendefinisikan sebuah method general
(bersifat umum) untuk semua kelas
turunannya
Kelas-kelas turunanya dapat memperbarui
implementasi dari mthod tersebut secara
lebih spesifik sesuai dengan karakteristik
masing-masing kelas
class Bentuk {
public double luas() {
System.out.println("tidak didefinisikan");
return 0;
}
}
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 bujur sangkar: ");
return (sisi * sisi);
}
}
class demoPolimorfisme2 {