AI给出的示例程序:
#lang racket
(define Person%
(class object%
(init-field name age) ; 定义初始化字段
(super-new) ; 调用父类的构造函数
; 定义公共方法来获取字段值
(define/public (get-name)
name)
(define/public (get-age)
age)))
(define Student%
(class Person%
(init-field student-id) ; 添加额外的字段
(super-new [name name] [age age]) ; 调用父类的构造函数并传递参数
; 定义公共方法来获取 student-id 字段值
(define/public (get-student-id)
student-id)
; 覆盖父类的 get-info 方法,添加学生 ID 的信息
(define/override (get-info)
(format "Name: ~a, Age: ~a, Student ID: ~a" (get-name) (get-age) student-id))))
; 创建 Student 类的实例
(define student (new Student% [name "Bob"] [age 20] [student-id "S12345"]))
; 调用方法获取字段值并打印
(display (send student get-info)) ; 输出: Name: Bob, Age: 20, Student ID: S12345
(newline)
把这段代码复制到IDE里运行,会提示错误 “get-name: unbound identifier in: get-name”。
请问,应该怎么改正?怎么在student里调用person里定义好的get-name和get-age?
--
修改:zhangxp024 FROM 223.215.89.*
FROM 223.215.89.*