Java图书馆通过多态实现计算罚金代码
时间: 2023-05-19 13:01:17 浏览: 100
非常感谢您的提问。以下是一个简单的Java代码示例,用于计算罚金:
```
public class LibraryItem {
private String title;
private int daysLate;
public LibraryItem(String title, int daysLate) {
this.title = title;
this.daysLate = daysLate;
}
public double calculateFine() {
return daysLate * 0.25;
}
}
public class Book extends LibraryItem {
private String author;
public Book(String title, int daysLate, String author) {
super(title, daysLate);
this.author = author;
}
}
public class DVD extends LibraryItem {
private String director;
public DVD(String title, int daysLate, String director) {
super(title, daysLate);
this.director = director;
}
@Override
public double calculateFine() {
return daysLate * 0.5;
}
}
public class Main {
public static void main(String[] args) {
LibraryItem[] items = new LibraryItem[2];
items[0] = new Book("The Great Gatsby", 3, "F. Scott Fitzgerald");
items[1] = new DVD("The Godfather", 5, "Francis Ford Coppola");
for (LibraryItem item : items) {
System.out.println("Title: " + item.title);
System.out.println("Days late: " + item.daysLate);
System.out.println("Fine: $" + item.calculateFine());
System.out.println();
}
}
}
```
这个示例使用了多态,因为 `Book` 和 `DVD` 类都继承了 `LibraryItem` 类,并且都重写了 `calculateFine` 方法,以便根据物品类型计算罚款金额。在 `Main` 类中,我们创建了一个 `LibraryItem` 数组,并将其中的两个元素分别设置为 `Book` 和 `DVD` 对象。然后,我们遍历该数组,并对每个元素调用 `calculateFine` 方法,以计算罚款金额。