3

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

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

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

4

1 回答 1

4

您需要使用超级形式:

#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
于 2013-03-24T21:58:32.733 回答