在Ocaml中,我正在努力进行子类化和类型化:
class super =
object (self)
method doIt =
...
end;
class sub =
object (self)
inherit super
method doIt =
...
self#somethingElse
...
method somethingElse =
...
end;
let myFunction (s:super) =
...
myFunction new sub
Run Code Online (Sandbox Code Playgroud)
显然OCaml中,阶级sub是不是一类的"子" super,因为该sub#doIt方法调用的方法sub是不存在的super.但是,这似乎是OO编程的一个非常常见的用例.推荐的方法是什么?