继承(C# 编程指南)

当基类将方法声明为 virtual 时,派生类可以用自己的实现重写该方法。 如果基类将成员声明为 abstract,则在直接继承自该类的任何非抽象类中都必须重写该方法。 如果派生类自身是抽象的,则它继承抽象成员而不实现它们。 抽象成员和虚成员是多态性的基础,多态性是面向对象的编程的第二个主要特性。 有关更多信息,请参见 多态性(C# 编程指南)

如果希望禁止通过 new关键字直接进行实例化,可以将类声明为abstract 如果这样做,则仅当从该类派生新类时才能使用该类。 抽象类可以包含一个或多个自身声明为抽象的方法签名。 这些签名指定参数和返回值,但没有实现(方法体)。 抽象类不必包含抽象成员;但是,如果某个类确实包含抽象成员,则该类自身必须声明为抽象类。 自身不是抽象类的派生类必须为抽象基类中的任何抽象方法提供实现。 有关更多信息,请参见 抽象类、密封类及类成员(C# 编程指南)

“接口”是一种引用类型,有点像仅包含抽象成员的抽象基类。 类在从接口实现时必须为该接口的所有成员提供实现。 类虽然只能从一个直接基类派生,但可以实现多个接口。

接口用于为不一定具有“是”关系的类定义特定功能。 例如,System.IEquatable<T> 接口可由任何类或构造实现,这些类或构造必须启用代码来确定该类型的两个对象是否等效(但是该类型定义等效性)。 IEquatable<T> 不表示基类和派生类之间存在的同一种“是”关系(例如 Mammal Animal)。 有关更多信息,请参见 接口(C# 编程指南)

派生类可以访问基类的公共成员、受保护成员、内部成员和受保护内部成员。 即使派生类继承基类的私有成员,仍不能访问这些成员。 但是,所有这些私有成员在派生类中仍然存在,且执行与基类自身中相同的工作。 例如,假定一个受保护基类方法访问私有字段。 要使继承的基类方法正常工作,派生类中必须有该字段。

类可以将自身或其成员声明为 sealed,从而禁止其他类从该类自身或其任何成员继承。 有关更多信息,请参见 抽象类、密封类及类成员(C# 编程指南)

派生类可以通过以相同的名称和签名声明基类成员来隐藏这些成员。 可以使用 new 修饰符显式指示成员不作为基类成员的重写。 不是必须要使用 new,但如果不使用 new,将生成编译器警告。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值