poster
2019-12-02, 21:02
<p>几个月前,我问这个问题是另一个问题。 </p><p>在我的第一个<a href="https://stackoverflow.com/questions/54424217/how-do-i-inherit-the-tcpip-class-correctly-in-matlab">问题中,</a>我创建了一个作为tcpip-classobject的类属性,最后效果很好。 </p><p>在实现了许多方法之后,我决定通过实现<code>tcpip</code>类中的<code>BytesAvailableFunction</code>来改进代码。从此开始,我认为继承<code>tcpip</code>类而不是创建属性对象是一个不错的决定。 </p><p>所以这是目前的代码: </p><pre class="lang-matlab prettyprint-override"> <code>classdef wsg50 < tcpip methods %Constructor with SuperClassConstructor function obj = wsg50(varargin) defaultHost = 'localhost' % The decoding of varargin follows obj = obj@tcpip(host,port) obj.conf_conn(); end %Configure Connection method function conf_conn(obj) obj.OutputBufferSize = 3000; end end</code> </pre><p>如果我在构造函数中调用方法<code>conf_conn</code> ,我将得到ErrorMsg: </p><pre> <code>"Unrecognized property 'OutputBufferSize' for class 'wsg50'."</code> </pre><p>如果我在构造函数方法之外调用该方法。构造函数被再次调用,我得到了ErrorMsg: </p><pre> <code>"The name 'conf_conn' is not an accessible property for an instance of class 'TCPIP objects'."</code> </pre><p>但是,如果我直接调用超类的Property: </p><pre> <code>gripper.OutputBuffersize = 3000</code> </pre><p>它工作正常,我可以更改我的属性。 </p><p>是否可以使用子类方法从超类tcpip更改属性? </p>
更多&回答... (https://stackoverflow.com/q/59139447)
更多&回答... (https://stackoverflow.com/q/59139447)