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

来源:互联网 发布:生产工艺流程图软件 编辑:程序博客网 时间:2024/06/06 00:46

     封装 继承 多态 这三个是面向对象的基本特征、有了这三个特征的编程语言、才是面向对象编程语言、如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