java
Warisan dapat didefinisikan sebagai proses di mana satu kelas memperoleh properti (metode dan bidang) dari yang lain. Dengan menggunakan pewarisan, informasi dibuat dapat dikelola dalam urutan hierarkis.
Kelas yang mewarisi sifat-sifat orang lain dikenal sebagai subkelas (kelas turunan, kelas anak) dan kelas yang sifat-sifatnya diwarisi disebut superclass (kelas dasar, kelas induk).
memperluas adalah kata kunci yang digunakan untuk mewarisi properti kelas. Berikut adalah sintaks kata kunci extends.
Sintaks
class Super { ..... ..... } class Sub extends Super { ..... ..... }
Berikut ini adalah contoh yang menunjukkan pewarisan Java. Dalam contoh ini, Anda dapat mengamati dua kelas yaitu Calculation dan My_Calculation.
Menggunakan kata kunci extends, My_Calculation mewarisi metode penambahan() dan Pengurangan() dari kelas Perhitungan.
Salin dan tempel program berikut dalam file dengan nama My_Calculation.java
Contoh
Demo Langsungclass Calculation { int z; public void addition(int x, int y) { z = x + y; System.out.println("The sum of the given numbers:"+z); } public void Subtraction(int x, int y) { z = x - y; System.out.println("The difference between the given numbers:"+z); } } public class My_Calculation extends Calculation { public void multiplication(int x, int y) { z = x * y; System.out.println("The product of the given numbers:"+z); } public static void main(String args[]) { int a = 20, b = 10; My_Calculation demo = new My_Calculation(); demo.addition(a, b); demo.Subtraction(a, b); demo.multiplication(a, b); } }
Kompilasi dan jalankan kode di atas seperti yang ditunjukkan di bawah ini.
javac My_Calculation.java java My_Calculation
Setelah menjalankan program, maka akan menghasilkan hasil sebagai berikut
Keluaran
The sum of the given numbers:30 The difference between the given numbers:10 The product of the given numbers:200
Dalam program yang diberikan, ketika sebuah objek ke My_Calculation class dibuat, salinan konten superclass dibuat di dalamnya. Itulah sebabnya, dengan menggunakan objek subkelas, Anda dapat mengakses anggota superkelas.
Variabel referensi Superclass dapat menampung objek subclass, tetapi menggunakan variabel tersebut Anda hanya dapat mengakses anggota superclass, jadi untuk mengakses anggota kedua kelas disarankan untuk selalu membuat variabel referensi ke subclass.
Jika Anda mempertimbangkan program di atas, Anda dapat membuat instance kelas seperti yang diberikan di bawah ini. Tetapi menggunakan variabel referensi superclass ( cal dalam hal ini) Anda tidak dapat memanggil metode multiplication() , yang termasuk dalam subkelas My_Calculation.
Calculation demo = new My_Calculation(); demo.addition(a, b); demo.Subtraction(a, b);
Catatan Sebuah subclass mewarisi semua anggota (field, method, dan nested class) dari superclass-nya. Konstruktor bukan anggota, jadi mereka tidak diwarisi oleh subclass, tetapi konstruktor superclass dapat dipanggil dari subclass.
super kata kunci mirip dengan ini kata kunci. Berikut adalah skenario di mana kata kunci super digunakan.
Digunakan untuk membedakan anggota superclass dari anggota subclass, jika mereka memiliki nama yang sama.
Digunakan untuk memanggil superclass konstruktor dari subkelas.
Jika suatu kelas mewarisi properti dari kelas lain. Dan jika anggota superclass memiliki nama yang sama dengan subclass, untuk membedakan variabel tersebut kita menggunakan kata kunci super seperti gambar di bawah ini.
super.variable super.method();
Bagian ini memberikan Anda sebuah program yang mendemonstrasikan penggunaan super kata kunci.
Dalam program yang diberikan, Anda memiliki dua kelas yaitu Sub_class dan Kelas_Super , keduanya memiliki metode bernama display() dengan implementasi berbeda, dan variabel bernama num dengan nilai berbeda. Kami memanggil metode display() dari kedua kelas dan mencetak nilai variabel num dari kedua kelas. Di sini Anda dapat mengamati bahwa kami telah menggunakan kata kunci super untuk membedakan anggota superclass dari subclass.
Salin dan tempel program dalam file dengan nama Sub_class.java.
Contoh
Demo Langsungclass Super_class { int num = 20; // display method of superclass public void display() { System.out.println("This is the display method of superclass"); } } public class Sub_class extends Super_class { int num = 10; // display method of sub class public void display() { System.out.println("This is the display method of subclass"); } public void my_method() { // Instantiating subclass Sub_class sub = new Sub_class(); // Invoking the display() method of sub class sub.display(); // Invoking the display() method of superclass super.display(); // printing the value of variable num of subclass System.out.println("value of the variable named num in sub class:"+ sub.num); // printing the value of variable num of superclass System.out.println("value of the variable named num in super class:"+ super.num); } public static void main(String args[]) { Sub_class obj = new Sub_class(); obj.my_method(); } }
Kompilasi dan jalankan kode di atas menggunakan sintaks berikut.
javac Super_Demo java Super
Saat menjalankan program, Anda akan mendapatkan hasil berikut
Keluaran
This is the display method of subclass This is the display method of superclass value of the variable named num in sub class:10 value of the variable named num in super class:20
Jika sebuah kelas mewarisi properti dari kelas lain, subkelas secara otomatis memperoleh konstruktor default dari superclass. Tetapi jika Anda ingin memanggil konstruktor berparameter dari superclass, Anda perlu menggunakan kata kunci super seperti yang ditunjukkan di bawah ini.
super(values);
Program yang diberikan di bagian ini mendemonstrasikan bagaimana menggunakan kata kunci super untuk memanggil konstruktor parametris dari superclass. Program ini berisi superclass dan subclass, di mana superclass berisi konstruktor berparameter yang menerima nilai integer, dan kami menggunakan kata kunci super untuk memanggil konstruktor berparameter dari superclass.
Salin dan tempel program berikut dalam file dengan nama Subclass.java
Contoh
Demo Langsungclass Superclass { int age; Superclass(int age) { this.age = age; } public void getAge() { System.out.println("The value of the variable named age in super class is: " +age); } } public class Subclass extends Superclass { Subclass(int age) { super(age); } public static void main(String args[]) { Subclass s = new Subclass(24); s.getAge(); } }
Kompilasi dan jalankan kode di atas menggunakan sintaks berikut.
javac Subclass java Subclass
Saat menjalankan program, Anda akan mendapatkan hasil berikut
Keluaran
The value of the variable named age in super class is: 24
IS-A adalah cara untuk mengatakan:Objek ini adalah jenis objek itu. Mari kita lihat bagaimana memperluas kata kunci digunakan untuk mencapai pewarisan.
public class Animal { } public class Mammal extends Animal { } public class Reptile extends Animal { } public class Dog extends Mammal { }
Sekarang, berdasarkan contoh di atas, dalam istilah Berorientasi Objek, berikut ini benar −
Sekarang, jika kita mempertimbangkan hubungan IS-A, kita dapat mengatakan
Dengan menggunakan kata kunci extends, subclass akan dapat mewarisi semua properti superclass kecuali properti pribadi superclass.
Kami dapat memastikan bahwa Mamalia sebenarnya adalah Hewan dengan menggunakan operator instance.
Contoh
Demo Langsungclass Animal { } class Mammal extends Animal { } class Reptile extends Animal { } 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); } }
Ini akan menghasilkan hasil berikut
Keluaran
true true true
Karena kami memiliki pemahaman yang baik tentang perluasan kata kunci, mari kita lihat bagaimana menerapkan kata kunci digunakan untuk mendapatkan hubungan IS-A.
Umumnya, menerapkan kata kunci digunakan dengan kelas untuk mewarisi properti antarmuka. Antarmuka tidak pernah dapat diperluas oleh kelas.
Contoh
public interface Animal { } public class Mammal implements Animal { } public class Dog extends Mammal { }
Mari kita gunakan instanceof operator untuk memeriksa apakah Mamalia sebenarnya Hewan, dan anjing sebenarnya Hewan.
Contoh
Demo Langsunginterface Animal{} class Mammal implements Animal{} public 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); } }
Ini akan menghasilkan hasil berikut
Keluaran
true true true
Hubungan ini terutama didasarkan pada penggunaan. Ini menentukan apakah kelas tertentu HAS-A hal tertentu. Hubungan ini membantu mengurangi duplikasi kode serta bug.
Mari kita lihat contohnya
Contoh
public class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; }
Ini menunjukkan bahwa kelas Van HAS-A Speed. Dengan memiliki kelas terpisah untuk Kecepatan, kita tidak harus meletakkan seluruh kode milik kecepatan di dalam kelas Van, yang memungkinkan untuk menggunakan kembali kelas Kecepatan di beberapa aplikasi.
Pada fitur Object-Oriented, pengguna tidak perlu pusing memikirkan objek mana yang melakukan pekerjaan sebenarnya. Untuk mencapai ini, kelas Van menyembunyikan detail implementasi dari pengguna kelas Van. Jadi, pada dasarnya yang terjadi adalah pengguna akan meminta kelas Van untuk melakukan tindakan tertentu dan kelas Van akan melakukan pekerjaan itu sendiri atau meminta kelas lain untuk melakukan tindakan tersebut.
Ada berbagai jenis warisan seperti yang ditunjukkan di bawah ini.
Fakta yang sangat penting untuk diingat adalah bahwa Java tidak mendukung multiple inheritance. Ini berarti bahwa kelas tidak dapat memperpanjang lebih dari satu kelas. Oleh karena itu mengikuti adalah ilegal
Contoh
public class extends Animal, Mammal{}
Namun, sebuah kelas dapat mengimplementasikan satu atau lebih antarmuka, yang telah membantu Java menyingkirkan ketidakmungkinan pewarisan berganda.
java
Kelas Java ByteArrayOutputStream Dalam tutorial ini, kita akan belajar tentang Java ByteArrayOutputStream dan metodenya dengan bantuan contoh. ByteArrayOutputStream kelas java.io paket dapat digunakan untuk menulis larik data keluaran (dalam byte). Ini memperluas OutputStream kelas abstrak. Cat
Kelas Java PrintStream Dalam tutorial ini, kita akan belajar tentang kelas Java PrintStream dan metode print() dan printf() dengan bantuan contoh. PrintStream kelas java.io package dapat digunakan untuk menulis data keluaran dalam bentuk (teks) yang dapat dibaca secara umum alih-alih byte. Ini mem
Kelas Pembaca Java Dalam tutorial ini, kita akan belajar tentang Java Reader, subclass-nya dan metodenya dengan bantuan sebuah contoh. Reader kelas java.io package adalah superclass abstrak yang mewakili aliran karakter. Sejak Reader adalah kelas abstrak, itu tidak berguna dengan sendirinya. Namun
Warisan dapat didefinisikan sebagai proses di mana satu kelas memperoleh properti (metode dan bidang) dari yang lain. Dengan menggunakan pewarisan, informasi dibuat dapat dikelola dalam urutan hierarkis. Kelas yang mewarisi sifat-sifat orang lain dikenal sebagai subkelas (kelas turunan, kelas anak)