Inheritance
•
Dapat memperoleh variabel dan fungsi
dari kelas lain yang sudah ada.
•
Fitur Powerfull.
•
Impilicit atau pernyataan eksplisit.
•
Semua kelas di Jawa termasuk kelas yang
membangun Java API, adalah warisan dari Object kelas
Superclass
and Subclass
•
Kelas yang
menerima dari kelas lain, yang disebut Subclass (kelas turunan, kelas
diperpanjang atau kelas anak)
•
Superclass
juga disebut sebagai kelas induk
•
Subclass
diberikan hak dan lulus untuk mengakses data anggota (bidang / variabel,
metode, dan kelas bersarang) di supernya.
•
Constructor
bukan anggota sehingga tidak diwarisi oleh subclass
•
Memungkinkan
menambahkan data anggota baru dalam subclass
Apa
yang dilakukan di Subclass
•
Sebuah Subclass mewariskan semua hak
untuk mengakses kedua publik dan dilindungi oleh superclass-nya, terlepas dari
mana paket dari subclass berada.
•
Jika subclass memiliki paket yang sama
dengan superclass sehingga subclass juga akan mendapatkan warisan dari anggota
paket-pribadi dari superclass-nya.
•
Gunakan meluas untuk mengakses kelas
induk
•
Tidak diizinkan untuk menerima beberapa
warisan dari lebih dari satu kelas induk
Keyword
super
•
Keyword ini mengacu objek dalam kelas.
•
Keyword yang super mengacu pada
superclass dari class pemanggil nya.
•
2 cara menggunakan keyword super
:
–
Memanggil konstruktor superclass
•
Example: super() or super( parameters )
–
Memanggil method superclass.
•
Example: super.method( parameters )
public void
printRadius()
{
System.out.println(“Radius of a circle is ” + supper.getRadius() );
}
{
System.out.println(“Radius of a circle is ” + supper.getRadius() );
}
Example
of Inheritance :
Parent Class (superclass) : Bicycle.java
public class Bicycle
{
public int gear;
public int speed;
// constructor from class Bicycle with passing parameter
public Bicycle( int startSpeed, int startGear )
{
gear = startGear;
speed = startSpeed;
}
public void setGear ( int newValue )
{
gear = newValue;
}
public void applyBrake ( int decrement )
{
speed -= decrement;
}
public void speedUp ( int increment )
{
speed += increment;
}
}
{
public int gear;
public int speed;
// constructor from class Bicycle with passing parameter
public Bicycle( int startSpeed, int startGear )
{
gear = startGear;
speed = startSpeed;
}
public void setGear ( int newValue )
{
gear = newValue;
}
public void applyBrake ( int decrement )
{
speed -= decrement;
}
public void speedUp ( int increment )
{
speed += increment;
}
}
Keuntungan
dari Inheritance
Keuntungan dalam
OOP: Reusability
v Ketika perilaku (metode) ini dideklarasikan pada
superclass, perilaku yang secara otomatis diwariskan kepada semua subclass
v hanya bisa mengkodekan metode sekali dan metode bisa
digunakan oleh semua subclass
v Sebuah subclass hanya perlu mengimplementasikan
perbedaan antara dirinya dengan induknya
Overriding
VS Overloading
•
Overriding :
–
Subclass
memodifikasi metode yang telah didefinisikan oleh superclass.
–
Fungsi dideklarasikan
di subclass harus memiliki tanda tangan yang sama (nama, jumlah dan jenis
parameter data) dan kembali metode nilai dengan yang di superclass
•
Overloading :
–
Lebih dari satu fungsi yang memiliki
nama yang sama dengan yang di superclass.
–
Fungsi dideklarasikan di subclass harus
tidak memiliki tanda tangan yang sama (nama, jumlah dan jenis parameter data)
dan kembali metode nilai dengan yang di superclass
Final
Class and Method
Final Class
- Kelas yang tidak bisa meluas
- Untuk mendeklarasikan kelas akhir, kita bisa
menulis,
public
final ClassName
{
. . .
}
Example:
public final class Person
{
. . .
}
{
. . .
}
Example:
public final class Person
{
. . .
}
Contoh lain dari kelas
terakhir adalah kelas wrapper dan String.
Final
Class and Method
Method
Final
- Metode yang tidak bisa diganti
- Untuk mendeklarasikan metode akhir, kita bisa
menulis,
public final
return_Type method_Name ( parameters )
{
. . .
}
{
. . .
}
Example :
public final String getName()
{
return name;
}
{
return name;
}
metode statis otomatis adalah metode
akhir.
Tidak ada komentar:
Posting Komentar