这个C#声明是什么意思?

时间:2011-03-05 03:05:23

标签: c# class interface

在C#程序中,我看到以下声明:

public class myForm : Form
public abstract myForm1 : myForm
public interface myInterface
public interface myInterface2 : myInterface
public class myClass : myForm1, myInterface2

myClass对myForm1和myInterface2意味着什么?

myForm1是基类吗?如果是这样,并且C#中没有多重继承,那么这个与myClass的接口关系是什么?界面与班级有何不同?

2 个答案:

答案 0 :(得分:7)

这意味着myClass派生自myForm1类,并实现myInterface2接口。没有多重继承发生,因为你只扩展了一个类。

在Java中,这将用两个不同的运算符表示,C#只是方便地使用:运算符:

class myClass extends myForm1 implements myInterface2

接口不是类;它(简单地说)是一个实现类型需要的方法列表(或者要遵循的规则列表)。

答案 1 :(得分:2)

福勒说,

  OO语言中的

继承子类化是一种实现方法,其中子类继承超类的数据和操作。它与子类型有很多共同之处,但存在重要差异。子类化只是实现子类型的一种方式......子类化也可以在没有子类型的情况下使用 - 但是大多数作者都对这种做法不屑一顾。较新的语言和标准越来越多地试图强调接口继承(子类型)和实现继承(子类化)之间的区别。

     

关于对象类型之间的关系,出现了两个问题。首先,对象是否具有可以从超类型继承的单一类型单一分类),还是具有多种类型多个分类)?多重分类与多重继承不同。对于多重继承,类型可以具有许多超类型,但每个实例都是可以具有超类型的单个类型。多重分类允许对象使用多种类型,而无需为此目的定义特定类型。