C#中的抽象类和接口

一、 抽象类:

1、 定义:抽象类代表一个抽象概念,专门用来继承的。在一个以继承关系形成的等级结构里面,树叶节点应当是具体类,而树枝节点均应当是抽象类。

2、 声明方法:抽象类和抽象方法的声明都使用关键字abstract。

3、 注意事项:(1)不能被实例化。

  (2)抽象方法必须被子类重写。

  (3)只要类中包含了抽象方法,就必须被定义为抽象类。

二、接口:

      1、定义:把隐式公共方法和属性组合起来以封装特定功能的集合。

      2、命名方法:在名称的前面加上一个“I”。同时用interface声明。

      3、注意事项:(1)类实现了接口就会支持所有接口中的属性和成员。

                               (2)不能被实例化。

                               (3) 接口中不包含任何成员的执行方式,不能有实现。

                               (4)不能有构造方法和字段,修饰符(public、private等)。

抽象类和接口的异同:

 

从形态角度区分:两者都不能被实例化,抽象类可以给出一些成员的实现,可以被子类部分实现,并且一个类只能继承一个抽象类,但是接口却不包含成员的实现,一个类可以实现多个接口,同时类需要完全实现接口。

从层次角度区分:类是对对象的抽象;抽象类是对类的抽象,而接口是对行为的抽象。也就是说如果我们需要对行为实现类的时候可以采用接口,仅仅是实现一些相似的类对象时可以继承抽象类。

从设计角度区分:抽象类是根据子类中的公共东西泛化出的父类,然后让子类去继承,而接口不需要知道子类的情况,只是定义了一个规范用于不同的类去实现。

                            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值