面向对象三大特性

一、封装

每个对象包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来进行自己的操作。将方法、属性、字段包装在类中,通过实例化类来生成对象。

封装的好处:

1、好的封装能减少耦合

2、类内部的实现可以自由修改

3、类具有清晰的对外接口

封装就像建房子,类就是房子,属性是门窗,字段是房子里的东西,方法是人的行为。属性对字段有保护作用,防止字段被随意的修改或读取。

二、继承

对象的继承代表一种“is-a”关系,“子类is父类”。子类具有(继承)父类的所有特性,也可以定义自己独有的特性。

总结:

1、子类具有父类非private的属性和方法

2、子类可以扩展父类没有的属性和方法

3、子类可以重写父类的方法

继承的缺点:子类和父类具有强耦合性。

当两个类具有“is-a”关系时,适合用继承;当两个类具有"has-a"关系时,不适合用继承,比如,胳膊不适合继承自人。

三、多态

多态表示不同的对象可以执行相同的动作,但要通过他们自己的实现代码来执行。比如猫和狗继承自动物,猫叫和狗叫都是相同的动作-动物叫,但是实现方式不同。

总结:

1、子类可以以父类的身份出现 (使用父类对象的地方都可以用子类来代替)

2、子类在工作时以自己的方式来实现

3、子类以父类的身份出现时,子类特有的方法和属性不能使用

多态的实现方式:

将父类的成员(除了字段外的其他成员,包括方法、属性、事件、索引器)声明为虚拟的:在该成员返回值类型之前加virtual关键字(虚方法可以有自己的实现);子类通过overrid(重写)将父类实现替换为自己的实现。

多态的使用方式:以父类来声明,以子类的方式来实例化。比如在调用“动物叫”方法的地方,都可以替换成”猫叫“或”狗叫“,即不同的对象执行相同的动作。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值