Casts in Java Classes
What is that?
Inheritance merupakan sebuah konsep yang ada pada pemrograman berorientasi objek. Simpelnya, sebuah class dapat mewarisi atribut dan method dari kelas lain, biasanya digunakan untuk merekonstruksi dan menciptakan struktur hierarki. Ketika Inheritance digunakan pada sebuah code, biasanya konsep tersebut akan menghasilkan class turunan sebagai hasil atau hubungan antara Superclass (Kelas asal yang mewariskan sifat-sifatnya) dan Subclass (Kelas baru yang tercipta dan menerima warisan tersebut).
What’s the point?
Jika ditanya apa maksut dari semua ini maka biasanya merujuk pada fungsi atau manfaat dari konsep ini. Istilah dari manfaat yang dihasilkan oleh konsep Inheritance adalah Reusability. Simpelnya, sebuah method dapat digunakan berkali-kali hanya dengan mewariskannya ke class lain sehingga pembuatan method yang sama dinilai tidak perlu
When?
Umumnya, penggunaan konsep ini tidak memiliki aturan pasti. Terkadang programmer boleh saja secara iseng menurunkan method tersebut ke class lain tanpa maksud tertentu. Namun umumnya, konsep ini digunakan ketika programmer perlu memperluas penggunaan suatu method atau dapat juga ketika programmer perlu memberikan suatu method ke class lain agar class tersebut menjadi lebih detail atau sempurna
How?
Untuk mencobanya, ada beberapa hal kecil yang harus dilakukan. Misalnya, hal yang harus dilakukan pertama adalah membuat class induk dan atributnya. Sebagai contoh codenya kira-kira seperti ini
class Vehicle {
String name;
int speed;
void tampilkanInfo() {
System.out.println("name: " + name);
System.out.println("top speed: " + speed);
}
}Create another class
Setelah membuat suatu class, langkah selanjutnya adalah membuat class lain yang akan digunakan sebagai class turunan. Sebagai contoh kira-kira seperti ini
class Car extends Vehicle {
int cardoor;setelah membuat class baru, langkah selanjutnya yang dapat dicoba adalah membuat menggunakan metode override. Singkatnya, metode ini berfungsi tanda agar compiler mengetahui method dibawah tanda tersebut akan menimpa method yang terdapat di superclass dengan nama yang sama. Sebagai contoh kira-kira seperti ini
@Override
public void showInfo() {
super.showInfo();
System.out.println("number of car doors: " + cardoor);
}Get Zidane Arrizqi Akmal’s stories in your inbox
Join Medium for free to get updates from this writer.
Add more class
Setelah menggunakan methode override, hal yang dapat dicoba kembali adalah membuat class baru lagi untuk menguji apakah konsep ini memang memiliki kelebihan yang disebutkan sebelumnya yaitu Reusability. Sebagai contoh, kira-kira seperti ini
class Bike extends Vehicle {
String engine;
@Override
public void showInfo() {
super.showInfo();
System.out.println("engine: " + engine);
}
}Setelah selesi membuat code yang tersebut, langkah selanjutnya adalah mencoba menampilkan hasilnya. Sebagai contoh, kira-kira seperti ini
class Vehicle {
String name;
int speed;
void showInfo() {
System.out.println("name: " + name);
System.out.println("top speed: " + speed);
}
}
class Car extends Vehicle {
int cardoor;
@Override
public void showInfo() {
super.showInfo();
System.out.println("number of car doors: " + cardoor);
}
}
class Bike extends Vehicle {
String engine;
@Override
public void showInfo() {
super.showInfo();
System.out.println("engine: " + engine);
}
}
public class PraktikumPBO_5 {
public static void main(String[] args) {
Car Freedom = new Car();
Freedom.name = "Dodge Viper";
Freedom.speed = 331;
Freedom.cardoor = 2;
Freedom.showInfo();
System.out.println();
// ---------------------------------------------------------
Bike Blitzkrieg = new Bike();
Blitzkrieg.name = "BMW M1000RR";
Blitzkrieg.speed = 314;
Blitzkrieg.engine = "inline 4 cylinder - 4 stroke";
Blitzkrieg.showInfo();
}
}Make hierarchy
Hal selanjutnya yang dapat dicoba adalah membuat class hierarki yang lebih kompleks. Sebagai contoh kira-kira seperti ini
class Vehicle {
String name;
int speed;
void showInfo() {
System.out.println("name: " + name);
System.out.println("top speed: " + speed);
}
}
class landVehicles extends Vehicle {
String platform;
@Override
public void showInfo() {
super.showInfo();
System.out.println("Vehicle type: " + platform);
}
}
class Car extends landVehicles {
int cardoor;
@Override
public void showInfo() {
super.showInfo();
System.out.println("number of car doors: " + cardoor);
}
}
class Bike extends landVehicles {
String engine;
@Override
public void showInfo() {
super.showInfo();
System.out.println("engine: " + engine);
}
}
public class PraktikumPBO_5 {
public static void main(String[] args) {
Car Freedom = new Car();
Freedom.name = "Dodge Viper";
Freedom.speed = 331;
Freedom.platform = "Land";
Freedom.cardoor = 2;
Freedom.showInfo();
System.out.println();
// ---------------------------------------------------------
Bike Blitzkrieg = new Bike();
Blitzkrieg.name = "BMW M1000RR";
Blitzkrieg.speed = 314;
Blitzkrieg.platform = "Land";
Blitzkrieg.engine = "inline 4 cylinder - 4 stroke";
Blitzkrieg.showInfo();
}
}Setelah mempelajari penggunaan konsep Inheritance, hal terahir yang akan dibahas di artikel ini adalah mencoba kembali hal-hal yang sebelumnya telah dipelajari. Sebagai alat uji, terdapat beberapa soal yang dapat dikerjakan. Untuk soalnya kira-kira seperti ini
First
Pada soal pertama, soal tersebut meminta penjawab untuk membuat suatu class tertentu dengan atributnya. Lalu soal tersebut meminta pembuatan 2 class turunan lalu tampilkan hasilnya. Sebagai jawaban, kira-kira seperti ini
class Animal {
String name;
String animal_type;
public void showAnimal() {
System.out.println("name: " + name);
System.out.println("types of animals: " + animal_type);
}
}
class Cat extends Animal {
@Override
public void showAnimal() {
super.showAnimal();
}
}
class Dog extends Animal {
@Override
public void showAnimal() {
super.showAnimal();
}
}
public class PraktikumPBO_5 {
public static void main(String[] args) {
Cat Flufy = new Cat();
Flufy.name = "Rigby";
Flufy.animal_type = "Cat";
Flufy.showAnimal();
System.out.println("---------------------------------------");
Dog Dawg = new Dog();
Dawg.name = "Borzoi";
Dawg.animal_type = "Dog";
Dawg.showAnimal();
}
}Second
Setelah menyelesaikan soal pertama, langkah selanjutnya adalah menyelesaikam soal kedua. Soal kedua meminta penjawab untuk menambahkan metode baru menggunakan override. Sebagai contoh, kira-kira seperti ini
class Animal {
String name;
String animal_type;
public void showAnimal() {
System.out.println("name: " + name);
System.out.println("types of animals: " + animal_type);
}
}
class Cat extends Animal {
String catSound;
public void animalSound() {
System.out.println("Animal sound: " + catSound);
}
@Override
public void showAnimal() {
super.showAnimal();
}
}
class Dog extends Animal {
String dogSound;
public void animalSound() {
System.out.println("Animal sound: " + dogSound);
}
@Override
public void showAnimal() {
super.showAnimal();
}
}
public class PraktikumPBO_5 {
public static void main(String[] args) {
Cat Flufy = new Cat();
Flufy.name = "Rigby";
Flufy.animal_type = "Cat";
Flufy.catSound = "miaw";
Flufy.showAnimal();
Flufy.animalSound();
System.out.println("---------------------------------------");
Dog Dawg = new Dog();
Dawg.name = "Borzoi";
Dawg.animal_type = "Dog";
Dawg.dogSound = ("guk");
Dawg.showAnimal();
Dawg.animalSound();
}
}




