Matlab: Convert superclass to subclass object
===

I want to create a subclass, `ess` say, to the built-in `ss` class. I'd like to be able to convert an existing `ss` object to an `ess` object by

    sys=ss(a,b,c,d);
    esys=ess(sys);

but I can't figure out how to setup the constructor correctly. What is the best way to achieve this? My code currently looks like this

    classdef ess < ss
        properties
            w
        end
        methods
            function obj = ess(varargin)
                if nargin>0 && isa(varargin{1},'StateSpaceModel')
                    super_args{1} = sys;
                else
                    super_args = varargin;
                end
                obj = obj@ss(super_args{:});
            end
        end 
    end

But this does not work as I get the following error:

     >> ess(ss(a,b,c,d))
     ??? When constructing an instance of class 'ess', the constructor must preserve
     the class of the returned object.

Of course I could copy all the object properties by hand but it seems to me that there should be some better way.