Memecahkan Warisan Latihan di Jawa

By | November 15, 2022

Mangihin.com.

Selamat Membaca, semoga informasi ini bermanfaat dan dapat membantu anda.

Mengkodekan hierarki kelas java berikut yang diwakili oleh diagram UML ini:

Kelas dasar adalah kelas Karyawan. Kelas ini berisi:

atribut pribadi Nama bertipe String yang diwarisi oleh kelas lainnya.

Sebuah konstruktor default.

Konstruktor berparameter yang menginisialisasi nama dengan String yang diterimanya.

atur dan dapatkan metode untuk atribut nama.

Metode toString() yang mengembalikan String: “Employee ” + name.

Kelas-kelas lainnya hanya boleh menimpa metode toString() di masing-masing kelas dan mendeklarasikan konstruktor yang sesuai sehingga ketika eksekusi instruksi berikut:

Empleado E1 = new Empleado("Rafa");
Directivo D1 = new Directivo("Mario");
Operario OP1 = new Operario("Alfonso");                                                                           
Oficial OF1 = new Oficial("Luis");
Tecnico T1 = new Tecnico("Pablo");
System.out.println(E1);
System.out.println(D1);
System.out.println(OP1);
System.out.println(OF1);
System.out.println(T1);

Berikan sebagai hasil:

Empleado Rafa
Empleado Mario -> Directivo
Empleado Alfonso -> Operario
Empleado Luis -> Operario -> Oficial
Empleado Pablo -> Operario -> Tecnico                                                                             

Larutan:

Pertama kita menulis kode untuk kelas Karyawan yang merupakan Kelas Dasar:

//Clase Empleado. Clase Base de la jerarqua
public class Empleado {
    private String nombre;

    //constructor por defecto
    public Empleado() {
    }

    //constructor con un parmetro
    public Empleado(String nombre) {
        this.nombre = nombre;
        System.out.println("Constructor de Empleado " + nombre);
    }
   
    //mtodos get y set
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    //mtodo toString()
    //devuelve un String formado por la palabra “Empleado” y el nombre de empleado                                
    @Override
    public String toString() {
        return "Empleado " + nombre;
    }
}

Selanjutnya kita menulis kode untuk Derived Classes.

Yang pertama akan kita buat adalah kelas Operator yang mewarisi langsung dari kelas Karyawan. Ingat bahwa dalam Java pewarisan dinyatakan dengan kata memanjang: Operator memperluas Karyawan menunjukkan bahwa kelas Operator berasal atau mewarisi dari kelas Karyawan.

Kelas Operator mewarisi atribut name, metode get/set, dan metode toString() dari Employee. Konstruktor kelas menerima nama karyawan dan meneruskannya ke konstruktor kelas Dasar menggunakan pernyataan super(nama).

Di kelas ini, metode toString() yang diwarisi dari kelas dasar dimodifikasi (ditimpa) sehingga menampilkan pesan seperti yang diminta oleh latihan.

//Clase Operario. Clase derivada de la clase Empleado
public class Operario extends Empleado{

    //constructor con un parmetro
    public Operario(String nombre) {
        super(nombre);
        System.out.println("Constructor de Operario");
    }

    //constructor por defecto
    public Operario() {
    }

    //modificacin del mtodo toString() para mostrar el mensaje adecuado                                         
    @Override
    public String toString() {
        return super.toString() + " -> Operario";
    }
   
}

Sekarang kita menulis kode untuk kelas Officer yang diturunkan dari kelas Operator.

Kelas Officer mewarisi dari Operator atribut nama, metode get/set, dan metode toString().

Konstruktor kelas menerima nama karyawan dan meneruskannya ke konstruktor kelas Dasarnya, di kelas ini kelas Operator, menggunakan instruksi super(nama).

Di kelas ini, metode toString() yang diwarisi dari kelas dasarnya juga dimodifikasi sehingga menampilkan pesan seperti yang diminta oleh latihan.

//Clase Oficial. Clase derivada de la clase Operario
public class Oficial extends Operario{

    public Oficial() {
    }

    public Oficial(String nombre) {
        super(nombre);
        System.out.println("Constructor de Oficial");                                                             
    }
   
    @Override
    public String toString() {
        return super.toString() + " -> Oficial";
    }
}

Kode Java untuk kelas lainnya mirip dengan ini.

//Clase Directivo. Clase derivada de la clase Empleado
public class Directivo extends Empleado{

    public Directivo() {
    }
   
    public Directivo(String nombre) {
        super(nombre);
        System.out.println("Constructor de Directivo");                                                           
    }
   
    @Override
    public String toString() {
        return super.toString() + " -> Directivo";
    }
}
//Clase Tecnico. Clase derivada de la clase Operario
public class Tecnico extends Operario{

    public Tecnico() {
    }

    public Tecnico(String nombre) {
        super(nombre);
        System.out.println("Constructor de Tecnico");                                                             
    }
   
    @Override
    public String toString() {
        return super.toString() + " -> Tecnico";
    }
}