Swift中的继承有点令人困惑

时间:2016-02-15 18:45:36

标签: swift inheritance

继承如何在Swift中运行?根据我的理解,所有父母都应该由孩子替换。由于某些原因,它无法正常工作。以下是一个例子:

public class Car {

var model: String

func getModel()-> String?{
   return model
}
}


 public class CompactCar: Car {
  // some codes

 }

public class carRedo{
 var cartyp:Car!
init(carType: Car){
   self.cartyp = carType
}
}

当我将CompactCar传递给carRedo构造函数时,我收到一个编译错误:

carRedo(CompactCar)// error

这个错误:

  

无法将'(CompactCar).Type'(又名'CompactCar.Type')的值转换为预期的参数类型'Car'

1 个答案:

答案 0 :(得分:5)

您无法将CompactCar(或任何其他类名称)传递给carRedo的构造函数。您需要传递CompactCar类型的对象

let mini = CompactCar()
let redo = carRedo(mini)

如果您不需要单独访问传递给carRedo的汽车,您可以"折叠"上面两个叫做一个:

let redo = carRedo(CompactCar())
//                           ^^