面向对象再理解

本文深入探讨面向对象的三大特性——封装、继承和多态,并通过生动的例子加以说明。此外,还介绍了抽象类与接口的区别及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言:

    最近在学习设计模式,就对面向对象部分的知识进行了一下总结,之前对很多知识不理解有些细节也没有注意到,这次来说相对好一点,下次可能还会有新的理解。


面向对象三大特性:封装、继承、多态;


封装:

    每个对象都包含它能进行操作所需要的所有信息,对象不必依赖其他对象来完成自己的操作。

   优点:1、解耦合   2、类内部可以自由修改  3、类具有清晰的对外接口

   理解:类就相当于我们的房子,室内的装饰和摆设只能被室内的居住者欣赏和使用,摆设可以随意地改变不影响其他人,房子有门窗,供人进出以及流通空气。


继承:

    继承定义了父类和子类,称作基类和派生类;

   特点:

    1、子类拥有父类非private的属性和功能;

    2、子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;

    3、子类可以以自己的方式实现父类的功能(方法重写);

   理解:

    小猫咪咪和小狗旺财都有名字属性和叫的方法,在代码中我们发现除了cat和dog不同和“喵”“汪”不同,其他一模一样,因此我们可以建立一个父类Animal类,把相同部分放到Animal中,让小猫和小狗去继承Animal类。

   优点:

     1、避免了重复的代码

     2、修改和扩展比较容易

   缺点:

      父类变,子类必须改变,是一种强耦合。

   注意:

     子类可从父类继承(方法、域、属性、事件、索引指示器),构造方法不能被继承,只能调用,可以用base关键字。


多态:

    不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。

    特点:

      1、子类以父类的身份出现

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

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

    理解:

      京剧演出的例子,父亲生病不能出演,现在儿子代替父亲出演,以父亲的身份出现是以自己的理解表演,代替父亲上场时不能表演出自己的绝活。


抽象类和接口:

    C#允许把类和方法声明为abstract,即抽象类和抽象方法。

    抽象类特点:

     1、抽象类不能实例化

     2、抽象方法必须被子类重写

     3、类中包含抽象方法,那么类必须定义为抽象类。

    接口:

       接口把隐式公共方法和属性组合起来,以封装特定功能的一个集合。

      特点:

      1、 一旦实现了接口,类就可以支持接口所指定的所有属性和成员

      2、声明接口和声明抽象类完全相同,不提供接口中任何成员的执行方式。

      3、类必须要实现接口中的所有方法和属性

   

  区别:

   1、抽象类可以给出一些成员的实现,接口不包含

   2、抽象类的抽象成员可被子类部分实现,接口的成员要全部实现

   3、一个类只能继承一个抽象类,但可以实现多个接口

   4、抽象类是对类的抽象,接口是对行为的抽象

   5、抽象类是从子类中发现公共的东西,泛化出父类,子类继承父类,接口根本不知道子类的存在。


总结:

    这几天讲了几个模式,把uml图的几种关系和面向对象的知识结合起来,设计模式基本上就可以理解了,然后向代码转换也就变得容易了,还有进步的空间,加油!



评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值