您的位置:首页 > 编程语言 > C#

C#基础概念 从新理解继承多态

2016-04-12 16:18 751 查看
继承 inherit 内容

先了解继承概念因为多态概念要基于继承.

官方概念:

Inheritance enables you to create new classes that reuse, extend, and modify the behavior that is defined in other classes.

基类中可以有abstract和virtual方法,他们是多态性的基础

Abstract class - 当希望基类不能通过new来实例化,必须从这个类派生出子类才能使用这个类时,就把他标记为abstract class. Abstract class中可以有field, property,有完全实现的方法,抽象方法和虚方法

Interface 接口理解成一个特殊的abstract class,特殊在他的所有成员都必须是abstract,必须在子类中实现。

接口的成员自动是public,不能是static,也不能含有常量,字段成员

意义:如果有手机,相机,Mp4三种类型的电子产品,比起分别在类中写不同名称和内容的’Charge’方法,让他们都继承IChargable接口而通知他们实现接口中的Charge方法更有利于统一化

结构体不能实现继承,但是可以实现接口

类可以将自身或其成员声明为 sealed,从而禁止其他类从该类自身或其任何成员继承

派生类隐藏基类成员(在多态new和virtual中解释)

多态 Polymorphism内容

Ref: 多态解释

new的用法比较陌生,记录一下

用new关键字代替override位置,可以隐藏基类成员.

现在有三种类:基类类型的基类,基类类型的子类,子类类型的子类。

在子类中用new更改一个成员时,只对子类类型的子类有效,从其他两种类型里调用这个new成员时,都还是基类的样子.

用override重写方法或属性后,就改变或者延伸了原方法,对子类类型的子类和基类类型的子类都有效。除非从基类类型的基类中调用这个方法才还是基类中的样子,因为override是在子类中进行的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: