C#学习笔记(5)----- 封装、继承、多态

封装

每个对象都能包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作。

封装的好处

良好的封装能够减少耦合。

类内部的实现可以自由地修改。

类具有清晰的对外接口。

继承

对象的继承代表了一种“is - a”的关系,如果两个对象A和B,可以描述为“B是A”,则表明B可以继承A。猪是动物,就说明了猪和动物之间是继承与被继承的关系。继承者是对被继承者的特殊化,因为它除了被继承的特性之外,还具备了自己独有的特性。

继承中的子类与父类关系

子类拥有父类非private的属性和方法。

子类具有自己的属性和方法,即子类可以扩展父类没有的属性和方法。

子类还可以以自己的方式实现父类的方法(方法重写override

继承的缺点是破坏包装,父类的实现细节暴露给子类,增大两个类的耦合性。

多态

多态表示不同的对象可以执行相同的动作,但要通过自己的实现代码来执行。其原理是当方法被调用是,无论对象是否被转换为其父类,都只有位于对象继承链最末端的方法实现会被调用。也就是说,虚方法是按照其运行时类型而非编译时类型进行动态绑定调用的。

多态中的子类与父类关系

子类以父类的身份实现。

子类在执行时以自己的代码来实现。

子类以父类的身份实现时,子类自己的属性和方法不能使用。

为了使子类完全接替来自父类的类成员,父类必须讲成员声明为虚拟的。也就是在成员的返回类型之前添加关键字virtual来实现。通常虚拟的是方法,但实际上只是除了字段不能虚拟的之外,属性、事件、和索引器都可以是虚拟的。尽管方法是虚拟的,但虚方法必须有方法体,可以实现某些功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值