接口和抽象类的概念不一样,接口是对动作的抽象,抽象类是对根源的抽象。
抽象类表示的是这个对象是什么,接口表示的是这个对象能干什么,比如说男人,女人这两个类,他们的抽象类是人,说明他们都是人。
人可以吃东西,狗也可以吃东西,你可以把吃东西定义成一个接口,然后让这些类去实现它。
所以,一个类只能继承一个类(抽象类),但是可以实现多个接口。
总结:
1:抽象类和接口都不能实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向所有实现接口方法的类对象。
2:抽象类要被子类继承,接口要被类实现。
3:抽象类中可以做方法申明,也可以做方法实现,接口只能做方法申明。
4:抽象类定义的变量是普通变量,接口中定义的只能是公共的变量。
5:抽象类只能单继承,接口可以继承接口,并可以继承多个接口。
6:抽象类是重构的结果,接口是设计的结果。
7:抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。
8:抽象类 可以有具体的方法和属性,但是接口只能有抽象方法,不能有常量和变量。
9:抽象类主要用来抽象类别,接口只能用来抽象功能。
10:当你关注一个事物本质的时候用抽象类,当你关注一个操作的额时候用接口。
接口内只能含有未被实现的方法,也叫抽象方法,但是不用abstract关键字。