封装 继承 多态 这三个是面向对象的基本特征、有了这三个特征的编程语言、才是面向对象编程语言、如C#
封装:
特性
1每个对象包含他操作的所有信息
2不必依赖其他对象来完成某些操作
好处
减少耦合(减少关联)
类内部可以自由修改
对外接口清晰
继承:
如果有A、B两个对象、可以描述为B是A、则表明B可以继承A
猫是哺乳动物、、猫(继承)哺乳动物(被继承)
继承者还可以理解为是被继承者的特殊化、因为他除了有被继承者的特性、还具备独立的个性
记住:
1.子类有父类非private的属性和功能
2子类具有自己的属性和功能、即子类可以扩展父类没有的属性和功能
3子类可以以自己的方式实现父类的功能(方法重写)
修饰符:
Protected 只对子类公开、其他类不能调用
子类继承父类的成员有:方法、域、属性、时间、索引指示器
但是不继承构造方法、构造方法只能调用、调用父类的构造方法、用base关键字
例子——
父类
子类——猫
优点:
改代码直接改父类、其他子类都改了、不用一个个去改
缺点:
改代码、会影响子类、所以在继承的时候要考虑清楚
继承不可多用、继承是强耦合关系——继承是把双刃剑
多态:
父类写一个虚拟方法、而继承的子类重写这个方法、每个子类都有不同的实现方法、这就是多态
特性:
1子类以父类的身份出现
2子类用自己的方式来实现父类的方法
3子类出现时、子类特有的属性方法不能使用
虚拟方法:可以被子类重写这个方法、关键字virtual
方法重写:子类从写父类的方法、关键字overridevirtual
在Animal类里写入一个虚拟方法
在子类里重写方法
动物报名按钮 和叫声比赛按钮
多态总结
1.写的时候
父类的方法要声明虚拟、添加关键字virtual
子类写父类的方法要叫重写、添加关键字override
2用的时候
生命要声明父类
实例化要实例化子类
其实
就是用多个子类不同功能的方法、来实现父类的一个方法、方法名相同、但是实现的时候会选择多个子类方法中的一个执行、(根据实例化时候、实例化的子类来区分)
面向对象、面向生活
——————chenchen——————