MATLAB面向对象编程指定类的优先级

      前面总结了使用类的时候类的默认优先级,接下来总结练习一下指定类的优先级。

      把之前用过的代码修改如下:

classA.m

classdef classA

    properties

        a;

    end

    methods

        function obj = classA(value)

            obj.a = value;

        end

        function MyMethod(obj,oj_classB)

            disp('The MyMethod of classA is called!');

        end

    end

end

 

classB.m

classdef (InferiorClasses = {?classA}) classB

    properties

        b;

    end

    methods

        function obj = classB(value)

            obj.b = value;

        end

        function MyMethod(obj,obj_classB)

            disp('The MyMethod of classB is called!');

        end

    end

end

 

      利用创建的两个类进行操作,记录如下:

>> obj_classA = classA(3)

 

obj_classA =

 

  classA withproperties:

 

    a: 3

 

>> obj_classB = classB(4)

 

obj_classB =

 

  classB withproperties:

 

    b: 4

 

>> MyMethod(obj_classA,obj_classB)

The MyMethod of classB is called!

>> MyMethod(obj_classB,obj_classA)

The MyMethod of classB is called!

      与之前使用默认的优先级相比,执行结果不同。这次,不管方法中传入参数如何改变,最终方法都调用了classB的方法。这说明了classB的优先级要高于classA的优先级。

      正常来说,在指定低级优先级的列表中,类的优先级也是由左到右依次递减。总体看来,这还是遵循“先入为主”的原则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值