白话面向对象

关于面向对象的学习,将是一个长期的过程,每一个阶段都会有不同的看法,现在对面向对象中的各种术语有有了一点新的认识,我以白话的形式描述出来。

1.类和对象

一个对象就是一个实体,你是一个对象,我是一个对象,孙悟空是一个对象。

类是具有相同属性和功能的对象的抽象集合,比如说人类,球类;类中的每一个对象都具备类的特征,就像是超人这个对象也是人类,因为他具备人类的一般特征(两个眼睛应该鼻子等等。。)


2.方法重载

同一名字的方法有着不同的能力,比如说你在一个咖啡厅偶遇了一个姑娘,你就这么爱上了她。如今十年过去了,你在那个咖啡厅再次偶遇上了她,你突然发现原来现在你对她已经没啥感觉。虽然是同样的人,同样的地方!但你的感情却变了,你的感情在这里被重载了。


3.封装

封装是一个概念,它的含义是把方法、属性、事件集中到一个统一的类中,就像是我们知道手机能打电话发短信,但是不知道它的这些功能是怎么实现的。这我们就可以认为手机被封装起来了。

4.继承

若子类继承父类,子类拥有父类非private属性和功能,子类拥有自己的属性和功能(扩展),子类还可以以自己的方式实现父类功能(方法重写)。


5.多态

一个同样的函数对于不同的对象可以具有不同的实现。例如一个Add方法,它既可以执行整数的加法求和操作,也可以执行

字符串的连接操作!

又比如说,儿子带父亲上台表演,儿子和父亲长得像,学的也像,所有化化妆观众都看不出来,但是要注意 1、子类以父类身份出现 2.儿子模仿再好也是儿子,所以子类以自己的方式实现 3.子类以父类形式出现时,子类特有属性和方法不可使用,这个也很好理解,怎么说都是装的嘛,哪能使出自己的绝活啊,要不就露馅了。


6.接口与抽象类

类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象。

一个类只能继承与一个抽象类,但可以有很多接口。就像是孙悟空有猴类的一般特征,可以继承于猴类,但是他可以有诸如72变、火眼金睛等不同的接口。


8.委托和事件

委托:在程序设计过程中,有时具体调用哪个方法还未确定,而在运行过程中才能确定;或有时因为需要,我们并不想

直接调用一个方法,而是通过间接方式调用 。

比如你委托我拿笔,这个委托是成功的,因为你委托给了我(人选合适)且明确要的东西(正确和必要的信息传递)

委托实例的一个有趣且有用的属性是:它不知道也不关心它所封装的方法所属的类;它所关心的仅限于这些方法必须与

委托的类型兼容。这使委托非常适合于“匿名”调用。——《C#语言规范



写在最后:学无止境,没个阶段都会有新认识,只有不断学习,不断进步,才能推开成功的大门。

原文地址:https://www.cnblogs.com/jinfulin/p/3797722.html