2013-12-07 161 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「。 –

相關問題