[Java核心技术(卷I)] - vscode手动编译运行继承类

  • 参考 - P160~P161

  • 主要有3个类: 一个测试类(ManagerTest)、一个子类(Manager)、一个父类(Employee)

  • 注意点:
    -1. 使用 javac -d . *.java进行预编译
    在这里插入图片描述

    目录结构入下:
    在这里插入图片描述
    此时会生成目录结构如下:
    在这里插入图片描述

  • 之后运行 java com.inheritance.ManagerTest
    在这里插入图片描述

  • 附上几个类的代码

// 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());
    }
  }
}

猜你喜欢

转载自blog.csdn.net/piano9425/article/details/110458993