我有一个关于 F# 类型转换的问题。这是代码。
type Person() =
abstract member SayMe : unit -> unit
default u.SayMe() = printfn "Hi, I am a person."
type Student() =
inherit Person()
override u.SayMe() = printfn "Hi, I am a student."
let x = Person()
let x1 = Student()
let x2 = x1 :> Person
x2.SayMe()|>ignore
//***Output:"Hi, I am a student."
x2 是 Person 类型。输出应该是“嗨,我是一个人”。
怎么解释呢?