A. Inheritance (Pewarisan)
Java mengizinkan kita untuk mendefinisikan suatu kelas yang bersifat generic. Selanjutnya, kelas tersebut dapat diturunkan lagi menjadi generic, kelas tersebut dapat diturunkan lagi menjadi kelas baru dengan sifat yang lebih spesifik. Kelas induk yang diturunkan disebut dengan superclass.
kelas binatang adalah superclass. Dari kelas Herbivora & Carnivora. Herbivora & Carnivora sendiri berperan sebagai subclass. Namun Herbivora dapat menjadi superclass dari subclass kambing & kerbau. Dan Carnivora dapat menjadi superclass dari subclass harimau & anjing.
1. Membuat Kelas Turunan (Subclass)
Untuk melakukan proses penurunan suatu kelas, diperlukan kata kunci extends Bentuk umum dari penggunaan kata kunci tersebut sebagai berikut:
Class nama-subclass extends nama-superclass
{
/ / badan kelas
}
Contoh listing program
class A{
private int a;
public void setA (int nilai) {
a = nilai;
}
public int getA ( ) {
return a;
}
}
// membuat kelas turunan (subclass) dari A
class B extends A{
private int b;
public void setB(int nilai) {
b = nilai;
}
public int getB( ) {
return b;
}
}
class ContohKelasTurunan {
public static void main(String[] args) {
//melakukan instansi terhadap kelas B
B obj = new B( );
//mengeset nilai objek dari kelas B
obj.setA(100);
obj.setB(200);
//mendapatkan nilai yang terdapat dalam objek dari kelas B
System.out.println(“Nilai a : “+ obj.getA( ) );
System.out.println(“Nilai b : “+ obj.getB( ) );
}
}
B. Override Terhadap Method
Pada saat kita mendefinisikan suatu method di dalam kelas turunan yang nama dan daftar parameternya sama persis seperti yang terdapat pada kelas induk, maka dikatakan kita telah melakukan override method yang tersimpan dalam kelas induk. Apabila kita melakukan pemanggilan method yang telah di-override melalui objek dari kelas turunan, maka yang akan dieksekusi adalah method yang terdapat pada kelas turunan, bukan yang terdapat kelas induk. Dengan kata lain, apabila kita melakukan override terhadap kelas induk, maka di dalam kelas turunan, method pada kelas induk akan disembunyikan keberadaannya (tidak tampak, tapi ada).
Contoh listing program:
class A {
private int a;
public void setA (int nilai) {
a = nilai;
}
public int getA( ){
return a;
}
public void tampilkanNilai ( ) {
System.out.println(“Nilai a : “ + getA( ) );
}
}
class B extends A {
private int b;
public void setB (int nilai) {
b = nilai;
}
public int getB( ){
return b;
}
//melakukan override terhadap method tampilNilai( )
public void tampilkanNilai ( ) {
System.out.println(“Nilai b : “ + getB( ) );
}
}
class DemoOverride {
public static void main (String [ ] args){
B obj = new B( );
obj.setA( 100 );
obj.setB( 200 );
//akan memanggil method yang terdapat pada kelas B
obj.tampilkanNilai( );
}
}
Untuk memunculkan / menampakkan nilai A, maka perlu penambahan kata kunci super.
class A {
private int a;
public void setA (int nilai) {
a = nilai;
}
public int getA( ){
return a;
}
public void tampilkanNilai ( ) {
System.out.println(“Nilai a : “ + getA( ) );
}
}
class B extends A {
private int b;
public void setB (int nilai) {
b = nilai;
}
public int getB( ){
return b;
}
//melakukan override terhadap method tampilNilai( )
public void tampilkanNilai ( ) {
super.tampilkanNilai( ); //memanggil method dalam kelas A
System.out.println(“Nilai b : “ + getB( ) );
}
}
class DemoOverride {
public static void main (String [ ] args){
B obj = new B( );
obj.setA( 100 );
obj.setB( 200 );
//akan memanggil method yang terdapat pada kelas B
obj.tampilNilai( );
}
}
C. Abstraction (Abstrak)
Untuk mendefinisikan sebuah kelas induk yang di dalamnya terdapat deklarasi method yang tidak memerlukan implementasi sama sekali. Method-method tersebut selanjutnya baru akan diimplementasikan oleh kelas-kelas turunannya. Method semacam ini disebut method abstrak.
Bentuk umunya:
abstract class namaKelas {
/ / badan kelas
}
Contoh listing program :
// mendefinisikan kelas abstract
abstract class A {
// method abstrak, tidak memiliki kode implementasi
abstract public void coba();
// kelas abstrak masing diizinkan untuk mendefinisikan method non-abstrak
public void cobajuga( ) {
System.out.println(“Method di dalam kelas abstrak”);
}
}
class B extends A {
//method prosedure coba( )
public void coba( ) {
System.out.println(“Method di dalam kelas B”);
}
}
class DemoKelasAbstrak {
public static void main(String[ ] args) {
A ref; // mendeklarasi referensi ke A
B obj = new B( );
ref = obj; // ref menunjuk ke objek dari kelas B
ref.coba( ); // memanggil method coba( ) di dalam B
ref.cobajuga( ); // memanggil method cobajuga( ) di dalam A
}
}
<br />
Jumat, 25 Desember 2009
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar