Calling the actual class in Matlab
假设我有这门课:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | classdef abstractGame %UNTITLED Summary of this class goes here % Detailed explanation goes here properties end methods (Abstract, Static) run(gambledAmount); end methods (Static) function init() gambledAmount = validNumberInput(abstractGame.getGambleString(), 1, 100, 'helpText', 'round'); end function str = getGambleString() str = 'How much do you want to gamble?'; end end end |
其他类从这个类扩展而来。我希望子类重新定义getGambleString方法,并让init方法使用最深的类定义(而不是abstractGame。…]我希望类似calledClass。…])。
我该怎么称呼它?事先谢谢。
这是一个EDCOX1的0个函数问题,但是这样的构造即使在C++中也不存在,那么我认为在Matlab中没有机会拥有它。(
顺便说一下,在Matlab中,非静态方法表现为虚拟的(如Java),因此,如果您不接受静态函数,则可以获得所需的效果。
证明(简化代码):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | classdef abstractGame function str = init(obj) str = getGambleString(obj); end function str = getGambleString(obj) str = 'How much do you want to gamble?'; end end end classdef game < abstractGame methods function str = getGambleString(obj) str = 'Hi!'; end end end d = game; d.init() ans = Hi! |