做Java开发三年了,对于如何从对象抽象成类我对自己之前的理解产生了深深的疑问
以前是这样理解的:
站在人类的思维角度考虑:
是先存在对象,再抽象成类,然后有个新的产品了(对象),将新产品归类,如果发现特征不符合,无法归类的情况下会抽象成单独的类。
我之前理解是这样的,比如存在很多对象,把对象的共性提取出来抽象成类。共性作为了属性,比如,对牧羊犬和柯基简单抽象一下,凡是有两只眼睛,四条腿,长毛的,就是狗。但实际上我发现这些共性可以理解为对象的特征,并不是属性,简单定义一下狗的属性,可以是品种,名字,年龄,性别这些。
那么最终抽象出来的应该是这些属性,而不是特征
假设有天从我身边经过一个“猫”,两只眼睛,四条腿,长毛的,那我是不是就把它分在狗这一类了。
现在我的理解是:
可以用特征来定义一个类,凡是插电的我都叫做电器,但是电器这个类的属性应该没有是否需要通电这个属性,而是属性应该是类似 名字,品牌,是否存在屏幕这些
一下子我才理解到 对象抽象成类,是根据特征来抽象的。而类的属性并不是特征。
我现在很懵逼,睡不着了。