-
Hay tres clases principales: una clase de prueba (ManagerTest), una subclase (Manager) y una clase principal (Empleado)
-
Precauciones:
-1 usandojavac -d . *.java
precompilado
La estructura del directorio
es la siguiente: En este momento, la estructura del directorio se generará de la siguiente manera:
-
Correr tras
java com.inheritance.ManagerTest
-
Adjunta el código de varias clases
// com.inheritance.Manager.java
package com.inheritance;
public class Manager extends Employee{
private double bonus;
public Manager(String name, double salary, int year, int month, int day) {
super(name, salary, year, month, day);
bonus = 0;
}
public double getSalary() {
double baseSalary = super.getSalary();
return baseSalary + bonus;
}
public void setBonus(double b) {
bonus = b;
}
}
// com.inheritance.Employee.java
package com.inheritance;
import java.time.*;
public class Employee {
private String name;
private double salary;
private LocalDate hireDay;
public Employee (String name, double salary, int year, int month, int day) {
this.name = name;
this.salary = salary;
hireDay = LocalDate.of(year, month, day);
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public LocalDate getHireDay() {
return hireDay;
}
public void raiseSalary(double byPercent) {
double raise = salary * byPercent / 100;
salary += raise;
}
}
// com.inheritance.ManagerTest.java
package com.inheritance;
public class ManagerTest {
public static void main(String[] args) {
Manager boss = new Manager("Carl Cracker", 80000, 1987, 12, 15);
boss.setBonus(5000);
Employee[] staff = new Employee[2];
staff[0] = new Employee("Harry Hacher", 50000, 1989, 10, 1);
staff[1] = new Employee("Tommy Tester", 40000, 1990, 3, 15);
System.out.println("name: " + boss.getName() + ", salary: " + boss.getSalary());
for(Employee e : staff) {
System.out.println("name: " + e.getName() + ", salary: " + e.getSalary());
}
}
}