关于公姓的来历,有两种说法,一说鲁昭公时,他把王位传给了自己的弟弟姬宋即鲁定公,定公把鲁昭公的两个儿子衍和为都封公爵,世称公衍、公为,后世衍和为的子孙就以祖上的爵位“公”作为了姓氏。
又有一说鲁昭公时,昭公想趁季孙氏闹内讧时将其灭掉,就和两个儿子公衍和公为一起联合了一批人攻打季氏。不想孟孙氏和叔孙氏都来支援季氏,三家合力将鲁昭公打败了。鲁昭公只好带着公衍和公为逃往齐国。公衍和公为的后代称为公氏。
根据《左传》和《史记》的记载,鲁昭公自二十五年由鲁移居于齐国,到三十二年死在乾候,鲁国在七年间实际已没有国君,政权早已不在鲁昭公手里,而由季氏控制。但季氏并没有夺取君位自立,还曾要把鲁昭公迎接回鲁国;鲁昭公死了,又立昭公之弟定公为君。那时还没有一个国家由臣取代君位的,季氏还没有胆量开这一先例。何况鲁国是弱小国家,季氏可能担心齐、秦、晋、楚这些强大之国以此为借口而攻伐季氏。再说,鲁国是周公旦后代的国家,“周礼尽在鲁矣,”“犹秉周礼”。周礼是西周奴隶社会制作礼乐典章法度,周公制作了它,对于巩固国家统治是很有约束力的,季氏不敢轻易改变这种礼法制度。 《左传?昭公二十九年》(公元前513年):“公赐公衍羔裘,使献龙辅于齐侯,遂入羔裘。齐侯喜,与之阳谷。公衍、公为之生也,其母偕出。公衍先生,公为之母曰:‘相与偕出,请相与偕告。”三日,公为生,其母先以告,公为为兄。公私喜于阳谷而思于鲁,曰:“务人为此祸也。且后生而为兄,其诬也久矣。’乃黜之,而以公衍为大子。” 看来鲁定公把鲁昭公的两个儿子衍和为都封公爵时,他们应在齐国而不在鲁国,后世公衍和公为的子孙就以祖上的爵位 “公”作为了姓氏。
另外,古时曾出现过的许多公字为首的复姓,,这些复姓氏在历史的演变过程中,大都简化成公姓。如:公索、公为、公华、公慎、公孟、公之、公父、公冉、公甲、公古、公文、公德、公良、公孙、公车、公金、公都、公建、公山、公祖、公宾、公仪、公输、公敛、公思、公若、公林、公坚、公施、公荆、公仲、公朱、公上、公叔、公仇、公行、公成、公师、公族、公正、公明、公子、公土、公襄、公牛、公玉、公牵、公干、公旗、公丘、公羊、公西、公何、公冶、公巫、公宣、公夏、公析、公南等
因篇幅问题不能全部显示,请点此查看更多更全内容