我有多种对象,例如Car
。
我是否在Car
的继承类/子类中拥有各种类型?
我是否将它们置于cartype
命名空间下,以免弄乱主命名空间?
然后,当我需要一系列汽车时,我应该将其声明为var currentCars():Car
或var currentCars():Object
吗?前者是否会支持Car的任何子类?
答案 0 :(得分:5)
具体答案很难,因为它们实际上取决于您的问题空间的细节,但一般情况下,如果所有类型的Car
共享某些功能,您将使用Car
的子类。 E.g:
public class Car {
public void Start() { }
}
然后你可以有不同类型的Car
:
public class Sedan : Car {
public void OpenAllFourDoors() { }
}
public class Coupe : Car {
public void OpenAllTwoDoors() { }
}
您通常不需要将类层次结构放入其自己的命名空间中,还有其他一组命名空间定义指南。通常,期望名称空间采用类似CompanyName.ProductName.ModuleName或类似名称的形式。
稍后,当您需要汽车的阵列(或更常见的集合)时,您将创建一个Car
的集合。但是,当您从此集合中获取引用时,您将无法OpenAllFourDoors
或OpenAllTwoDoors
,因为您无法知道您正在使用的Car
的哪个子类。< / p>
(对于C#中心语法抱歉)
答案 1 :(得分:1)
只要您没有与之冲突的覆盖方法,您就可以拥有从Car类继承的无限数量的类。
对于命名空间,我通常将从另一个继承的类放在同一个命名空间中,不确定是否在同一个命名空间中工作。
哦,当你需要一个数组时,你就像任何其他数据类型一样声明它。
您可以看到,当您声明Car类时,您将创建一个数据类型Car。
所以当你需要声明一系列汽车时,你会这样:
var currentCars():Car