水文-接口和抽象类有什么不同

面试的时候被问,接口和抽象类有什么区别?当时问就懵逼了,回答得不好,所以被pass了。

今天再想起来这个问题,就记录一下。

接口:我回答说,接口,就是对一类行为的归类。抽象类:我回答说,对一类物体的抽象。

嗯,其实自己理解得还是不够。事后想想,自己为啥不举个栗子呢。

例如,人类,这就是一个抽象类啊,因为还有很多人种啊,有亚洲人,欧洲人,非洲人等。实体(某某某)和另一个实体(某某某Z)在肤色,毛发之间肯定有差异的,而这些肤色,毛发等就是人的属性了嘛。

那么,吃饭,是一个接口啊,对吧?好像这个不怎么精确,因为,人如果不会吃饭的话,很难生存下来的。所以,吃饭应该是抽象类的一个虚方法,有人吃大米,有人吃面包,有人吃shit?哦,说错。反正,这个虚方法每个子类都可以重写。还有吃饭的时候,用筷子还是刀叉(用刀叉吃大米?国外人吃晚饭也可以叫吃饭吧?)

那,换个。煮饭,是一个接口了吧,毕竟不是人人都会煮饭啊。会煮饭的实体(某某某)就是继承,并实现了这个接口。当然,你煮饭是煮米饭还是煎牛排,这个就是接口的属性了。

那么问题来了,我要是当场举了这么一个例子,面试官会不会还是把我PASS呢?

猜你喜欢

转载自www.cnblogs.com/5wenwo/p/10228440.html