今天代码敲着敲着突发奇想,接口和抽象类是一直在用,但是究竟这两者的区别在哪里。思考了一下,打算写下来,也算是每日的小记录吧。
我觉得接口应该是抽象类的升华,抽象类侧重规范同一种类,接口规范了方法。
我记得很久以前学习接口这样东西看过接水管的例子,那个例子我印象还挺深刻。
客户需要一根水管,出水口一个月就要换个形状。
然后我们在墙上插了根圆形的水管,造了很多很多形状不同的出水口端,在客户需要的时候去和圆形水管做连接。只要这些出水口衔接端遵守圆形这个规则就能成功衔接。这个“圆形”就是接口,是一个约束。
现在想来抽象类也用这个比喻的话大约是客户需要很多很多水管,然后约定,这根水管18cm,圆形。然后我们批量造出来之后,客户可以要求颜色改变(抽象方法)。
网友评论