面向对象的三大特征:继承,多态,封装
封装:把一个或多个项目封装在一个物理的或者逻辑的包中。 封装是为了防止对实现细节的访问。
访问权限: public :公共的,公开的,允许类将其成员变量,和成员函数暴露给其他的函数和对象。任何的公共成员都可以被外部访问。
private:私有的, 只有在当前类对象中才能被访问到,
protected : 受保护的 只有该类对象及其子类对象可以访问。
internal:内部,内置 在同一个程序集中能被访问
继承:把拥有相同特征的归结到一个父类里面,然后需要实例化的就从这个父类里面实例化出来相同特征的属性。继承的事项实现了属于(IS-A)关系,Eg:哺乳动物属于动物,猫属于哺乳动物---->猫属于动物。 --------------------------菜鸟课程上面的解释。
在实例化出来之后,也可以添加进新的一些属性,Eg:小明爸爸会吃饭喝水打篮球,小明会吃饭喝水打篮球,敲代码,敲代码就是小明自己的特征。
1.延续性:父类有的,子类没有重写但是也可以使用, 父类没有的 ,子类可以自己新加。
2.重写:父子类都有的,但是父类不满足子类的需求时,子类可以对其重新定义。
3.重写(override):继承的子类中,方法名相同,父类中需要是virtual或abstract方法,子类才能通过override来重写。
4.重载:方法名相同,但是参数不同(参数类型,个数)。
5.重构:当两个类里面有相同的属性的时候,这时候就造成了代码的重复,可以吧相同的属性提炼到父类当中,然后在子类中去继承
多态:多态意味着有多重形式。在oop编程中,多态通常表现为,一个接口,多个功能。Eg:游戏中每种怪物攻击方式不一样,有的怪物是法术,有的是射箭,有的是刀,有的
是匕首,但是都是通过攻击这个接口来实现的。(当子类重写了父类方法,则不会调用父类中的这个方法)。
优势:降低代码的耦合性,减少重复代码的出现。