Rabu, 18 April 2012

Inheritance

Inheritance dapat didefinisikan sebagai proses dimana satu objek memperolehproperti dari yang lain. Dengan menggunakan pewarisan informasi itu dikeloladalam urutan hirarkis.

Ketika kita berbicara tentang pewarisan kata kunci yang paling sering digunakanakan memperluas dan menerapkan. Kata-kata ini akan menentukan apakah satu objek IS-A jenis lain. Dengan menggunakan kata kunci tersebut kita dapat membuat satu objek memperoleh properti dari obyek yang lain.

IS-A Hubungan:

IS-A adalah cara untuk mengatakan: Objek ini adalah jenis objek. Mari kita melihat bagaimana kata kunci meluas digunakan untuk mencapai pewarisan.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package animal;

/**
 *
 * @author Ridhwan
 */
public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

Sekarang berdasarkan contoh di atas, Dalam Object Oriented hal berikut ini benar:
·         Animal is the superclass of Mammal class.
·         Animal is the superclass of Reptile class.
·         Mammal and Reptile are sub classes of Animal class.
·         Dog is the subclass of both Mammal and Animal classes.
Sekarang jika kita mempertimbangkan IS-Hubungan kita dapat mengatakan:
·         Mammal IS-A Animal
·         Reptile IS-A Animal
·         Dog IS-A Mammal
·         Hence : Dog IS-A Animal as well
Dengan menggunakan kata kunci meluas subclass akan dapat mewarisi semuaproperti dari superclass kecuali sifat pribadi dari superclass tersebut.

Kami dapat menjamin bahwa Mammal sebenarnya merupakan Animal dengan penggunaan operator misalnya.

contoh:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package animal;

/**
 *
 * @author Ridhwan
 */
public class Dog extends Mammal{
   public static void main(String args[]){

      Animal a = new Animal();
      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
}

Hal ini akan menghasilkan hasil sebagai berikut:
Karena kita memiliki pemahaman yang baik tentang meluas kata kunci mari kita lihat bagaimana kata kunci alat yang digunakan untuk mendapatkan hubungan IS-A.

Kata kunci alat yang digunakan oleh kelas oleh mewarisi dari interface. Interfacetidak pernah dapat diperpanjang oleh kelas.

contoh:
public interface Animal {}
 
public class Mammal implements Animal{
}
 
public class Dog extends Mammal{
}

Contoh Kata Kunci:
Mari kita menggunakan operator instanceof untuk memeriksa menentukan apakahMammal sebenarnya Animal, dan anjing sebenarnya Animal
* To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package animal;

/**
 *
 * @author Ridhwan
 */
interface Animal{}

class Mammal implements Animal{}

class Dog extends Mammal{
   public static void main(String args[]){

      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
}
Hal ini akan menghasilkan hasil sebagai berikut:

HAS-A Hubungan:

Hubungan ini terutama didasarkan pada penggunaan. Ini menentukan apakahkelas tertentu HAS-A hal tertentu. Hubungan ini membantu untuk mengurangi duplikasi kode serta bug.

Mari kita melihat ke dalam sebuah contoh:
public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
                    private Speed sp;
} 
Hal ini menunjukkan bahwa kelas Van HAS-A Kecepatan. Dengan memiliki kelas terpisah untuk Kecepatan kita tidak harus meletakkan seluruh kode yang dimilikiuntuk mempercepat dalam kelas Van, yang memungkinkan untuk menggunakan kembali kelas Kecepatan dalam beberapa aplikasi..

Dalam fitur Berorientasi Objek pengguna tidak perlu repot-repot tentang objekyang melakukan pekerjaan nyata. Untuk mencapai ini, kelas Van menyembunyikanrincian implementasi dari pengguna dari kelas Van. SO pada dasarnya apa yang terjadi adalah pengguna akan meminta kelas Van untuk melakukan tindakan tertentu dan kelas Vann baik akan melakukan pekerjaan dengan sendirinya atau meminta kelas lain untuk melakukan tindakan.

Sebuah fakta yang sangat penting untuk diingat adalah bahwa Java hanya mendukung single inheritance. Ini berarti bahwa kelas tidak dapat memperpanjang lebih dari satu kelas. Oleh karena itu berikut yang ilegal:
public class extends Animal, Mammal{} 
Namun kelas dapat mengimplementasikan satu atau lebih interface. Hal ini telah membuat Java menyingkirkan ketidakmungkinan multiple inheritance


Tidak ada komentar:

Posting Komentar