面向对象基础知识(5)- 封装 继承 多态

     封装 继承 多态 这三个是面向对象的基本特征、有了这三个特征的编程语言、才是面向对象编程语言、如C#


封装:


特性

     1每个对象包含他操作的所有信息

     2不必依赖其他对象来完成某些操作

好处

     减少耦合(减少关联)

     类内部可以自由修改

     对外接口清晰


继承:

     如果有AB两个对象、可以描述为BA、则表明B可以继承A

     猫是哺乳动物、、猫(继承)哺乳动物(被继承)

 

子类——继承者
父类——被继承者

 

继承者还可以理解为是被继承者的特殊化、因为他除了有被继承者的特性、还具备独立的个性


记住:

     1.子类有父类非private的属性和功能

     2子类具有自己的属性和功能、即子类可以扩展父类没有的属性和功能

     3子类可以以自己的方式实现父类的功能(方法重写)

 

修饰符:

     Protected 只对子类公开、其他类不能调用

 

 

子类继承父类的成员有:方法、域、属性、时间、索引指示器

但是不继承构造方法、构造方法只能调用、调用父类的构造方法、用base关键字


 例子——

     父类

         

 

     子类——猫


        



 

优点:

改代码直接改父类、其他子类都改了、不用一个个去改

缺点:

改代码、会影响子类、所以在继承的时候要考虑清楚


继承不可多用、继承是强耦合关系——继承是把双刃剑



多态:


    父类写一个虚拟方法、而继承的子类重写这个方法、每个子类都有不同的实现方法、这就是多态


特性:

1子类以父类的身份出现

2子类用自己的方式来实现父类的方法

3子类出现时、子类特有的属性方法不能使用

 

虚拟方法:可以被子类重写这个方法、关键字virtual

方法重写:子类从写父类的方法、关键字overridevirtual

 

Animal类里写入一个虚拟方法

         

在子类里重写方法

         

 

动物报名按钮 叫声比赛按钮

        

        


多态总结

1.写的时候

父类的方法要声明虚拟、添加关键字virtual

子类写父类的方法要叫重写、添加关键字override

2用的时候

生命要声明父类

实例化要实例化子类

其实

就是用多个子类不同功能的方法、来实现父类的一个方法、方法名相同、但是实现的时候会选择多个子类方法中的一个执行、(根据实例化时候、实例化的子类来区分)


面向对象、面向生活

——————chenchen——————


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值