【面向对象】三大特性——封装、继承、多态

封装

【定义】


顾名思义,肯定是把东西用箱子“装”起来,再“密封”上。以笔记本为例,我们在使用时才不管里面的构造是什么样,只要能实现我们想要的功能就行了。这就是对笔记本进行了很好的封装。而屏幕,键盘等是跟外界连接的,其相对于对象的属性和方法。所以可得出,封装的定义是:每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装。

【优点】

①减少了耦合②类内部的实现可以自由的修改③类具有清晰的对外接口


继承

【定义】


顾名思义,儿子“继承”了父亲的财产。可在这里不同的是,子类继承了父类的属性和方法。而且,

①子类能完全替代父类(拥有父类非private的属性和功能,且可利用重写实现)

②子类可以有自己的特性

举个栗子,老鹰is a 鸟,那老鹰肯定有鸟所有的特性,比如会飞,有羽毛等,但其也有自己独有的特性,比如嘴是尖的。写到这,小编有个问题,那企鹅是鸟的子类吗?不是。因为企鹅不会飞啊~~ 

【优缺点】

优点:①实现了代码共享②修改实现更容易

缺点:增大了两个类之间的耦合性

【备注】

子类构造方法如果想调用父类的,需用base关键字。关键代码如下:

class Cat : Animal
    {
        public Cat() : base()
        { }
        public Cat(string name) : base(name)
        { }

        public string Shout()
        {
            string result=""
            for(int i=0;i<shoutNum;i++)
                result +="喵";
            return "我的名字叫"+name +""+result ;
        }
    }


多态

【定义】


不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。比如唱京剧时,有一天父亲生病了,让儿子来代替。那儿子需要做到:

①以父亲的身份出现

②以自己的理解来演(以自己的方式实现)

③不能随意删减(自身特有的属性和方法不能用)

【原理】

当方法被调用时,无论对象是否被转换为父类,都只有位于对象继承链最末端的方法实现会被调用(?)

【备注】

虚方法(virtual)、方法重写(override)


小结

所谓“横看成岭侧成峰”,只有多角度理解和比较知识点,才能更好地掌握。加油

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡夫卡的熊kfk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值