import java.util.HashMap;
import java.util.Map;
// 父类 Car
abstract class Car {
public abstract void drive();
}
// 奔驰
class Benz extends Car {
@Override
public void drive() {
}
}
// 宝马
class BMW extends Car {
@Override
public void drive() {
}
}
// 奥迪
class Audi extends Car {
@Override
public void drive() {
}
}
// 理想
class LiXiang extends Car {
@Override
public void drive() {
}
}
// 管家类
class HouseKeeper {
private Map
<String, Car
> carMap
= new HashMap
<>();
public HouseKeeper() {
carMap.put("奔驰", new Benz());
carMap.put("宝马", new BMW());
carMap.put("奥迪", new Audi());
carMap.put("理想", new LiXiang());
}
public void driveCar
(String carName
) { Car car = carMap.get(carName);
if (car != null) {
car.drive();
} else {
System.
out.
println("没有找到" + carName
); }
}
}
// 测试类
public class Main {
public static void main
(String[] args
) { HouseKeeper keeper = new HouseKeeper();
keeper.driveCar("宝马");
keeper.driveCar("理想");
keeper.driveCar("特斯拉");
}
}
aW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwppbXBvcnQgamF2YS51dGlsLk1hcDsKCi8vIOeItuexuyBDYXIKYWJzdHJhY3QgY2xhc3MgQ2FyIHsKICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGRyaXZlKCk7Cn0KCi8vIOWllOmpsApjbGFzcyBCZW56IGV4dGVuZHMgQ2FyIHsKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgZHJpdmUoKSB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLpqb7pqbblpZTpqbDlh7rpl6giKTsKICAgIH0KfQoKLy8g5a6d6amsCmNsYXNzIEJNVyBleHRlbmRzIENhciB7CiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyB2b2lkIGRyaXZlKCkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi6am+6am25a6d6ams5Ye66ZeoIik7CiAgICB9Cn0KCi8vIOWlpei/qgpjbGFzcyBBdWRpIGV4dGVuZHMgQ2FyIHsKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgZHJpdmUoKSB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLpqb7pqbblpaXov6rlh7rpl6giKTsKICAgIH0KfQoKLy8g55CG5oOzCmNsYXNzIExpWGlhbmcgZXh0ZW5kcyBDYXIgewogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgdm9pZCBkcml2ZSgpIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIumpvumptueQhuaDs+WHuumXqCIpOwogICAgfQp9CgovLyDnrqHlrrbnsbsKY2xhc3MgSG91c2VLZWVwZXIgewogICAgcHJpdmF0ZSBNYXA8U3RyaW5nLCBDYXI+IGNhck1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKCiAgICBwdWJsaWMgSG91c2VLZWVwZXIoKSB7CiAgICAgICAgY2FyTWFwLnB1dCgi5aWU6amwIiwgbmV3IEJlbnooKSk7CiAgICAgICAgY2FyTWFwLnB1dCgi5a6d6amsIiwgbmV3IEJNVygpKTsKICAgICAgICBjYXJNYXAucHV0KCLlpaXov6oiLCBuZXcgQXVkaSgpKTsKICAgICAgICBjYXJNYXAucHV0KCLnkIbmg7MiLCBuZXcgTGlYaWFuZygpKTsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBkcml2ZUNhcihTdHJpbmcgY2FyTmFtZSkgewogICAgICAgIENhciBjYXIgPSBjYXJNYXAuZ2V0KGNhck5hbWUpOwogICAgICAgIGlmIChjYXIgIT0gbnVsbCkgewogICAgICAgICAgICBjYXIuZHJpdmUoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIuayoeacieaJvuWIsCIgKyBjYXJOYW1lKTsKICAgICAgICB9CiAgICB9Cn0KCi8vIOa1i+ivleexuwpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgSG91c2VLZWVwZXIga2VlcGVyID0gbmV3IEhvdXNlS2VlcGVyKCk7CiAgICAgICAga2VlcGVyLmRyaXZlQ2FyKCLlrp3pqawiKTsKICAgICAgICBrZWVwZXIuZHJpdmVDYXIoIueQhuaDsyIpOwogICAgICAgIGtlZXBlci5kcml2ZUNhcigi54m55pav5ouJIik7CiAgICB9Cn0=