关于多态的java练习题
时间: 2023-10-29 17:52:26 浏览: 80
好的,以下是一些关于多态的Java练习题:
1. 定义一个Animal类,其中包含一个eat()方法。定义Dog和Cat类,它们都继承自Animal类,并且都覆盖了eat()方法。在主函数中,定义一个Animal类型的数组,分别实例化Dog和Cat对象,并将它们添加到数组中。遍历数组,调用每个元素的eat()方法。
2. 定义一个接口Shape,其中包含一个calculateArea()方法。定义Circle和Rectangle类,它们都实现了Shape接口,并且都覆盖了calculateArea()方法。在主函数中,定义一个Shape类型的数组,分别实例化Circle和Rectangle对象,并将它们添加到数组中。遍历数组,调用每个元素的calculateArea()方法。
3. 定义一个父类Employee,其中包含一个earnings()方法,用于计算员工的工资。定义三个子类:HourlyEmployee、SalariedEmployee和CommissionEmployee,它们都继承自Employee类,并且都覆盖了earnings()方法。在主函数中,定义一个Employee类型的数组,分别实例化HourlyEmployee、SalariedEmployee和CommissionEmployee对象,并将它们添加到数组中。遍历数组,调用每个元素的earnings()方法,并计算总工资。
希望这些练习题能够帮助你更好地理解多态的概念和应用。
相关问题
java继承多态练习题
以下是关于Java继承和多态的练习题答案:
1. 题目:下面关于子类继承父类,正确的是( )。
答案:A. public class Student extends People{}
2. 题目:关于继承的说法,正确的是( )。
答案:B. 除了Object之外的每个类,有且仅有一个父类
请注意,以上是根据提供的引用资料给出的答案。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [java多态练习题](https://download.csdn.net/download/qq_42036783/10365142)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [【java期末复习题】第5章 继承与多态](https://blog.csdn.net/DynamoTUO/article/details/121881634)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
java编程多态练习停车场收费系统
以下是Java编程实现停车场收费系统的多态练习题解答:
```java
// 定义车辆类
class Vehicle {
protected String type; // 车型
protected int hours; // 停车时间
public Vehicle(String type, int hours) {
this.type = type;
this.hours = hours;
}
// 计算停车费用
public double calculateFee() {
return 0;
}
}
// 定义客车类
class Bus extends Vehicle {
public Bus(int hours) {
super("客车", hours);
}
// 重写计算停车费用方法
public double calculateFee() {
return hours * 15;
}
}
// 定义货车类
class Truck extends Vehicle {
public Truck(int hours) {
super("货车", hours);
}
// 重写计算停车费用方法
public double calculateFee() {
return hours * 12;
}
}
// 定义轿车类
class Car extends Vehicle {
public Car(int hours) {
super("轿车", hours);
}
// 重写计算停车费用方法
public double calculateFee() {
return hours * 8;
}
}
// 定义停车场类
class ParkingLot {
private Vehicle[] vehicles; // 车辆数组
private int count; // 车辆数量
public ParkingLot() {
vehicles = new Vehicle[100];
count = 0;
}
// 添加车辆
public void addVehicle(Vehicle vehicle) {
vehicles[count++] = vehicle;
}
// 计算总停车费用
public double calculateTotalFee() {
double totalFee = 0;
for (int i = 0; i < count; i++) {
totalFee += vehicles[i].calculateFee();
}
return totalFee;
}
}
// 测试类
public class Test {
public static void main(String[] args) {
ParkingLot parkingLot = new ParkingLot();
parkingLot.addVehicle(new Bus(2));
parkingLot.addVehicle(new Truck(3));
parkingLot.addVehicle(new Car(4));
System.out.println("总停车费用为:" + parkingLot.calculateTotalFee()); // 输出:总停车费用为:119.0
}
}
```