【问题标题】:Racket - How to access superclass method within overridden method in subclassRacket - 如何在子类中的重写方法中访问超类方法
【发布时间】:2013-03-14 07:38:05
【问题描述】:

假设我有一个名为“bankAccount”的类。该类有一个名为“view”的方法,可以通过该方法查看帐户中的金额。

假设我有一个名为“bankAccountPW”的类,它继承自bankAccount。我将覆盖“查看”方法,以便仅在输入正确密码时才返回金额。如何访问基类 (bankAccount) 的“view”方法,以便可以根据原始“view”方法定义覆盖的“view”方法?

简而言之,使用 Racket,我如何在子类的重写方法中访问基类方法?

【问题讨论】:

    标签: methods overriding racket superclass


    【解决方案1】:

    你需要使用超级表单:

    #lang racket
    
    (define bankAccount%
      (class object%
        (super-new)
        (define/public (view) 'amount)))
    
    (define bankAccountPW%
      (class bankAccount%
        (super-new)
        (define/override (view) 
          (if #t (super view) 'blocked))))
    
    (send (new bankAccountPW%) view)
    => 'amount
    

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 2017-12-09
      • 1970-01-01
      • 2017-07-07
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      相关资源
      最近更新 更多