大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 設計子類構造函數(shù)的介紹

設計子類構造函數(shù)的介紹

更新時間:2022-07-29 10:13:12 來源:動力節(jié)點 瀏覽1037次

顯式調(diào)用超類構造函數(shù)

從子類構造函數(shù)顯式調(diào)用每個超類構造函數(shù)使您能夠:

將參數(shù)傳遞給超類構造函數(shù)

控制MATLAB®調(diào)用超類構造函數(shù)的順序

如果您沒有從子類構造函數(shù)顯式調(diào)用超類構造函數(shù),MATLAB 會隱式調(diào)用這些不帶參數(shù)的構造函數(shù)。超類構造函數(shù)必須支持無參數(shù)語法以支持隱式調(diào)用,并且構造函數(shù)按照它們出現(xiàn)在類塊頂部的順序從左到右被調(diào)用。要更改 MATLAB 調(diào)用構造函數(shù)或使用參數(shù)調(diào)用構造函數(shù)的順序,請從子類構造函數(shù)顯式調(diào)用超類構造函數(shù)。

如果不定義子類構造函數(shù),則可以使用超類參數(shù)調(diào)用默認構造函數(shù)。

從子類調(diào)用超類構造函數(shù)

要在子類構造函數(shù)中調(diào)用每個超類的構造函數(shù),請使用以下語法:

obj@SuperClass1(args,...);
...
obj@SuperclassN(args,...);

其中obj是子類構造函數(shù)的輸出,SuperClass...是超類的名稱,并且args是相應超類構造函數(shù)所需的任何參數(shù)。

例如,類定義的以下部分顯示了一個名為Stocks的類是一個名為的類的子類Assets。

classdef Stocks < Assets
   方法
      function s = Stocks(asset_args, ... ) 
         if nargin == 0
             % 為asset_args 賦值
         end 
         % 調(diào)用資產(chǎn)構造函數(shù)
         s@Assets(asset_args);
         ...
      結束
   結束
結束

引用包中包含的超類

如果超類包含在包中,請包含包名。例如,Assests該類在finance包中:

classdef Stocks < finance.Assets
   方法
      function s = Stocks(asset_args, ... ) 
         if nargin == 0
             ... 
         end 
         % 調(diào)用資產(chǎn)構造函數(shù)
         s@finance.Assets(asset_args);
         ...
      結束
   結束
結束

使用多個超類初始化對象

要從多個超類派生一個類,請通過調(diào)用每個超類構造函數(shù)來初始化子類對象:

classdef Stocks < finance.Assets & Taxable
    methods 
      function s = Stocks(asset_args,tax_args, ... ) 
         if nargin == 0
             ... 
         end 
         % 調(diào)用資產(chǎn)和成員類構造函數(shù)
         s@finance.Assets(asset_args)
         s@Taxable(tax_args)
         ...
      結束
   結束
結束

子類構造函數(shù)實現(xiàn)

為確保您的類構造函數(shù)支持零參數(shù)語法,請在調(diào)用超類構造函數(shù)之前為輸入?yún)?shù)變量分配默認值。您不能對超類構造函數(shù)的子類調(diào)用進行條件化。在任何條件代碼塊之外找到對超類構造函數(shù)的調(diào)用。

例如,Stocks類構造函數(shù)支持該語句的無參數(shù)情況,但在代碼塊if之外調(diào)用超類構造函數(shù)。if

classdef Stocks <
    Finance.Assets屬性
      股數(shù)
      象征
   結束
   方法
      function s = Stocks(description,numshares,symbol)
          if nargin == 0
            描述= '' ;
            股數(shù) = 0;
            符號 = '' ;
         結尾
         s@finance.Assets(描述);
         s.NumShares = numshares;
         s.Symbol = 符號;
      結束
   結束
結束

僅從構造函數(shù)調(diào)用直接超類

僅從子類構造函數(shù)調(diào)用直接超類構造函數(shù)。例如,假設類B派生自類A,類C派生自類B。類的構造函數(shù)C不能調(diào)用類的構造函數(shù)A來初始化屬性。類B必須初始化類A屬性。

下面的 classes A、B和的實現(xiàn)C展示了如何在每個類中設計這種關系。

類A定義屬性x和y,但僅將值分配給x:

類定義A
   屬性
      X
      是的
   結束
   方法
      函數(shù)obj = A(x)
          ...
            obj.x = x;
      結束
   結束
結束

類B繼承屬性x和y類A。類B構造函數(shù)調(diào)用類A構造函數(shù)進行初始化x,然后給y.

classdef B < A
   方法
      函數(shù)obj = B(x,y)
          ...
         obj@A(x);
         obj.y = y;
      結束
   結束
結束

類C接受屬性x和的y值,并將這些值傳遞給類B構造函數(shù),后者又調(diào)用類A構造函數(shù):

classdef C < B
   方法
      函數(shù)obj = C(x,y)
          ...
         obj@B(x,y);
      結束
   結束
結束

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 91久久国产视频 | 国产亚洲欧美日韩在线看片 | 日本一区二区三区免费高清在线 | 天天靠天天擦天天摸 | 国产萝控精品福利视频免费 | 孕妇xxxxxx孕交xxx | 欧美成人h版影片在线观看 欧美成人h精品网站 | 亚洲宗合| 久久久久久综合对白国产 | 久久精品国产精品青草图片 | jizzjizz成熟丰满老妇 | 99热久久久这里只有精品免费 | 欧美日本一道免费一区三区 | 成人毛片大全 | 国产高清不卡视频 | 第一序列番外篇在哪里看 | 国产综合91 | 天天爱天天干天天操 | 亚洲热久久 | 色综合久久网 | 成人在线视频网站 | 人人爱天天做夜夜爽毛片 | av中文字幕在线 | 日韩a级片 | 婷婷开心中文字幕 | 在线综合色 | 91亚洲国产在人线播放午夜 | 成人精品网 | 精品精品国产自在久久高清 | 又粗又大的机巴好爽视频视频 | 日本性网址 | 亚洲 欧美 精品 中文第三 | 国产小视频91 | 色黄网站成年女人色毛片 | 欧美精选在线 | 国产精品久久久久久久久久久不卡 | 久久久久久久国产精品视频 | 久久9热 | 亚洲狠狠色丁香婷婷综合 | 日韩永久免费进入2015 | 亚洲国产成人超福利久久精品 |