Rob*_*cks 0 oop inheritance namespaces
例如,我有多种物体Car.
我是否在继承的类/子类中有各种类型Car?
我是否将这些放在cartype命名空间下,以免弄乱主命名空间?
后来当我需要一系列汽车时,我应该将其声明为var currentCars():Car或var currentCars():Object?前者会支持Car的任何子类吗?
具体答案很难,因为它们实际上取决于您的问题空间的细节,但一般来说,Car如果所有类型Car共享某些功能,您将使用子类.例如:
public class Car {
public void Start() { }
}
Run Code Online (Sandbox Code Playgroud)
然后你可以有不同类型的Car:
public class Sedan : Car {
public void OpenAllFourDoors() { }
}
public class Coupe : Car {
public void OpenAllTwoDoors() { }
}
Run Code Online (Sandbox Code Playgroud)
您通常不需要将类层次结构放入其自己的命名空间中,还有其他一组命名空间定义指南.通常,期望名称空间采用类似CompanyName.ProductName.ModuleName之类的形式.
之后,当您需要一个汽车阵列(或更常见的集合)时,您将创建一个集合Car.但是,当您从此集合中获取引用时,您将无法OpenAllFourDoors或OpenAllTwoDoors因为您不知道Car您正在使用哪个子类.
(对于C#中心语法的道歉)