类是对象的抽象组织,对象是类的具体存在。
2200年前的战国时期,赵国平原君的食客公孙龙在骑着白马进城时,被守城官以马不能入城拦下,公孙龙即兴演讲,口述“白马非马”一论,守城官无法反驳,于是公孙龙就骑着他的白马(不是马的)进城去了。这就是历史上最经典的一次对面向对象思维的阐述。
公孙龙的“白马非马”论如下:
“白马非马”,可乎?曰:“可。”曰“何儎?”曰:“马者,所以命形也;白者,所以命色也。命色者非命形也。故曰:‘白马非马’。”曰:“有白马不可谓无马也。不可谓无马者,非马也?有白马为有马,白之,非马何也?”曰:“求马,黄、黑马皆可致;求白马,黄黑马不可致。使白马乃马也’,是所求一也,所求一者,白者不异马也。所求不异,如黄、黑马有可有不可,何也?可与不可,其相非明。故黄、黑马一也,而可以应有马,而不可以应有白马,是白马之非马,审矣!”
公孙龙乃战国时期的“名家”,名家的中心论题是所谓“名”(概念)和“实”(存在)的逻辑关系问题。名者,抽象也,类也。实者,具体也,对象也。从这个角度讲,公孙龙是我国早期的最著名的面向对象思维的思想家。
“白马非马”这一论断的关键就在于“非”字,公孙龙一再强调白马与马的特征,通过把白马和马视为两个不同的类,用“非”这一关系,成功的把“白马”与“马”的关系由从属关系转移到“白马”这个对象与“马”这个对象的相等关系上,显然,二者不等,故“白马非马”。而我们正常的思维是,马是一个类,白马是马这个类的一个对象,二者属于从属关系。说“白马非马”,就是割裂马与白马之间的从属关系,偷换概念,故为诡辩也。
白马非马这个典故,我们可以称之为诡辩。但我们把这个问题抽象出来,实际上讨论的就是类与类之间的界定、类的定义等一系列问题,类应该抽象到什么程度,其中涉及了类与对象的本质问题,也涉及了类的涉及过程中的一些原则。