我正在开发一个项目,我正在尝试使用泛型,但我很难过.
假设我有很多汽车,所有汽车都在不同的类中实现(例如,audi.java,toyota.java等),并且每个汽车都有一个名为startCar()的方法.现在我想创建一个类汽车,让其他类使用这些汽车.但是以下方法不起作用.我该如何实施呢?
public class Cars {
private MyCar mycar;
private class MyCar <MySpecificBrandOfCar>{
private MySpeicifBrand mySpecifcCar;
public MyCar(){}
}
public Cars(){
myCar = new myCar<audi>;
}
..other methods..
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过创建一个界面,但这也给出了错误.
谢谢
编辑,nfechner的建议
感谢所有的回复!
以下工作(NB:GenericCar是一个由所有汽车实现的接口(例如audi.java),并具有诸如startCar()之类的功能
public class Car{
private GenericCar mycar;
public Car(){
mycar = new audi();
}
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是,泛型不能用于实例化类,而不能用Java实例化.也许你可能会对你的意图更具体一些,但你可能会发现有一些基类Car并让每辆特定的汽车扩展它是有用的.如果在基类Car中定义startCar()方法,Car的每个子类型也将通过多态来使用此方法.
public class Car{
public void startCar(){ }
}
public class Audi extends Car{}
public class Toyota extends Car{}
Run Code Online (Sandbox Code Playgroud)
等等.
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |