接口与abstract的不同
1-抽象类中即可以包含抽象方法,也可以包含非抽象的普通方法,而接口中的所有方法必须是抽象方法
2-抽象类中的抽象方法的访问类型可以是public,protected类型和默认类型,但接口中的抽象方法只能是public类型的
3-抽象类中可以有普通成员变量,而接口中的所有变量均为public static final修饰,即均为常量
4-抽象类里可以有构造方法,而接口内不能有构造方法
5-一个类可以实现多个接口,但只能继承一个抽象类
实际看着还是有点晕,别看我总结挺好了,可是我一开始就是不明白。
后来类比了一下,一下子就想通了:
学过生物的都知道:界门纲目科属种。
就好比人类属于:
真核域,
动物界,
脊索动物门,
脊椎动物亚门,
哺乳纲,
真兽亚纲,
灵长目,
人科,
人属,
智人种,
这就是通过抽象类的层层继承,确定了最终派生类:人。
那什么是接口?
人里面有超人,有钢铁侠,有……
接口就是超能力,就是钢铁侠战衣,……
一个普通的“人”类,
当实现一个“超能力”的接口,他就是“超人”类;
当实现一个“钢铁侠战衣”的接口,他就是“钢铁侠”类。
当然一个派生类:狗类,
加上接口:翅膀,
它就是飞天狗。