代码之家  ›  专栏  ›  技术社区  ›  Jeff

必须继承和共享函数

  •  1
  • Jeff  · 技术社区  · 17 年前

    我正在查看一个声明为 MustInherit ( abstract 在c中,我认为)有三种方法,所有方法都定义为 Shared ( static C)。类中没有属性或字段-只有三个方法。从OO的角度来看,这有什么意义吗?

    我的想法是否定的,因为 必须继承 ,您实际上是说无法创建此类的实例-必须从该类继承并创建 衍生的 班级。但是,由于所有方法都是共享的,因此无论如何您都不会实际创建父类的实例,因此 必须继承 没有好处。你也可以 标记它 必须继承 只要你想继承就继承。

    是否存在这样创建类的情况?

    3 回复  |  直到 13 年前
        1
  •  2
  •   Joel Coehoorn    17 年前

    正如其他人所说,听起来他们真的想要一个C静态类。vb相当于“static”是“shared”,但不能在vb中标记类“shared”。不同的是,有人可以继承这个类,然后创建一个实例。C静态类是密封的。

    他们什么 应该 做了就是用 Module . 一个VB 模块 而C静态类实际上是相同的:成员与类型而不是实例相关联,您不能从中继承。

        2
  •  0
  •   Reed Copsey    17 年前

    从OO的角度来看,这没什么意义。

    然而,VB没有一种方法可以像C那样将类标记为共享。在C中,您可能会将该类标记为 static class -mustinherit很可能是为了防止人们创建它的实例而添加的,即使它基本上是一个静态类。

        3
  •  0
  •   Thomas Levesque    17 年前

    在C中,类可以声明为s t a t i c(=shared),我认为vb.net不允许这样做,因此作为一个解决方案,它被标记为abstract(mustinherit),这样它就不会被实例化。

    推荐文章