Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 在面向对象编程方面,哪种方法更好?_Oop - Fatal编程技术网

Oop 在面向对象编程方面,哪种方法更好?

Oop 在面向对象编程方面,哪种方法更好?,oop,Oop,超类->车辆| 子类->汽车和自行车 如果类Car需要startCar()方法(该方法输出 调用时为值“BRUMM”的字符串)甚至类 Bike需要一个类似的方法startBike()(输出 调用时使用一个值为“TRUMM”的字符串)会更好吗 这样做,或者换成一辆startVehicle() 超类车辆中的方法,其编码不同 各个子类的不同输出:汽车和自行车 编辑:Bike首先指的是摩托车,而不是分别使用startCar()和startBike()[和startVehicle()],该函数可以[而且应

超类->车辆| 子类->汽车和自行车

如果类Car需要startCar()方法(该方法输出 调用时为值“BRUMM”的字符串)甚至类 Bike需要一个类似的方法startBike()(输出 调用时使用一个值为“TRUMM”的字符串)会更好吗 这样做,或者换成一辆startVehicle() 超类车辆中的方法,其编码不同 各个子类的不同输出:汽车和自行车


编辑:Bike首先指的是摩托车

,而不是分别使用startCar()和startBike()[和startVehicle()],该函数可以[而且应该]被称为“start()”(例如Car.start()、Bike.start()、Vehicle.start()),因为每个函数都有相同的意图,并且设计用于提供相同类型的输出

现在,如果大多数/所有子类都要实现start函数,那么我建议在超类中创建start()函数,然后在子类中重写它

此外,如果Car.start()和Bike.start()有很多(但不是全部)相同的功能(例如,它们都启动某种发动机),则将类似的代码放入Vehicle.start()。然后,当您编写Car.start()和Bike.start()来重写Vehicle.start()时,相应的函数应该在运行其特定于类的代码之前调用Vehicle.start()方法


另外,绝对不要将超类的start()函数编码为根据类的实际类型输出不同的值;基本上,一个超类不需要知道子类。。。否则,有什么意义呢?:)

首先,不必分别使用startCar()和startBike()[和startVehicle()],该函数可以[而且应该]被称为“start()”(例如Car.start()、Bike.start()、Vehicle.start()),因为每个函数都有相同的意图,并且设计为提供相同类型的输出

现在,如果大多数/所有子类都要实现start函数,那么我建议在超类中创建start()函数,然后在子类中重写它

此外,如果Car.start()和Bike.start()有很多(但不是全部)相同的功能(例如,它们都启动某种发动机),则将类似的代码放入Vehicle.start()。然后,当您编写Car.start()和Bike.start()来重写Vehicle.start()时,相应的函数应该在运行其特定于类的代码之前调用Vehicle.start()方法


另外,绝对不要将超类的start()函数编码为根据类的实际类型输出不同的值;基本上,一个超类不需要知道子类。。。否则,有什么意义呢?:)

你如何启动自行车?有摩托车,尤其是在中国。关于这个主题:您的示例非常明显,但是您不应该仅仅为了oop而产生泛化和基类。如果有人会使用它,我很抱歉,如果我造成了任何混乱,我实际上指的是一辆摩托车,在世界许多地方,摩托车被广泛用作交通工具,通常被称为自行车。为了避免进一步的问题,我在我的问题后面加了一条注释。你如何启动自行车?有摩托车,特别是在中国。关于这个主题:您的示例非常明显,但是您不应该仅仅为了oop而产生泛化和基类。如果有人会使用它,我很抱歉,如果我造成了任何混乱,我实际上指的是一辆摩托车,在世界许多地方,摩托车被广泛用作交通工具,通常被称为自行车。为了避免进一步的问题,我在问题后面加了一条注释。