我想知道我是否可以按照我的方式建模下面两个类层次结构之间的关系:

代表其含义的代码如下:
public abstract class Car
{
protected Engine engine;
}
public class StreetCar extends Car
{
public StreetCar()
{
engine = new StreetEngine();
}
}
Run Code Online (Sandbox Code Playgroud)
......类似于OffroadCar类,它会做类似的事情engine = new OffroadEngine().我没有包含有关accele()方法的任何内容,它没有关系.
我只是想知道组合是否正确建模,或者添加那么多组合箭头是多余的甚至是错误的.