【问题标题】: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