2013-12-07 114 views
1

我有以下问题。我有三个类:A,B,和C. A是基类,B继承A,和C继承B.调用超类的构造函数的MATLAB超类

每个都有一个构造函数中的参数很多。然而,B的构造函数会执行几个步骤,我不想在C中使用这些步骤,除非添加更多接口代码,否则会破坏几个变量的封装。也就是说,我会让我的课程的用户有能力改变我不想要的一些变量。

结果,我以为我会很聪明,并试图从C调用的构造然而MATLAB不喜欢这一点。见下面的代码。

classdef C < B 
    % properties go here 
    % ... 
    methods(Access = public) 
    function obj = C(arguments) 
     obj = [email protected](A's arguments); % MATLAB doesn't like this 
     % ... 
    end 
    end 

那么,我怎么能(或者我可以不),调用构造函数给A?

回答

2

为B中的构造函数,我不想用C

在这种情况下几个步骤,你的C是不是B.如果从B构造未在执行建设C的过程,那么C不能成为B类的有效对象。但是,继承关系暗示了这一点。

这样,继承Ç<乙是错误的。你应该从A

继承C如果你真的想,我会尝试以实现B中的(大部分是空的)保护的构造函数,然后从下不能完全确定,虽然在Matlab工作调用。

+0

哇,我怎么错过了!谢谢!当然,B“是”A,但是C“不是”B“。 –

相关问题