一直对抽象类和接口有点疑惑,咋看功能差不多,网上找了点资料,看到一个比喻不错,记录一下。
1.飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类。
2. 就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);
而且只能是门,你不能说它是窗(单继承);一个门可以有锁(接口)也可以有门铃(多实现)。
门(抽象类)定义了你是什么,接口(锁)规定了你能做什么(一个接口最好只能做一件事,你不能要求锁也能发出声音吧(接口污染))。
如果你对抽象类和接口有更好的理解方式,欢迎讨论。

本文通过生动的比喻解释了抽象类与接口的概念及其差异:抽象类如同门,规定了对象的身份,而接口如门上的锁,规定了对象的行为。文章探讨了两者在面向对象编程中的作用。
963

被折叠的 条评论
为什么被折叠?



