首先定义一下什么是抽象类。
抽象类就是被声明为abstract的类。就是这么简单,一些书中记载为含有抽象方法的类是不准确的。只要被声明为abstract就是抽象类,也就是说该类中可以没有一个抽象方法。
抽象类的特点,这里只跟一般类做个比较:抽象类中有抽象方法,一般类中没有。所以请记住抽象类中有一般类中所有的特点。即全局变量,构造方法等。但是要记住一点如果是抽象方法则不能被声明为private的作用域,其实想一下就可以理解,如果被声明为private就不能被子类去实现,这样的方法还有什么意义。
接着说一下接口。
接口其实是抽象类的延伸,但是他又有自己的特点。
首先,接口中的变量默认的都是 static、final,即为常量,作用域为public。
其次,接口没有构造方法。
第三,接口中的方法全是抽象方法,不能有方法体。而且子类要全部实现这些方法。
第四,java中多继承的特点在这里用到,即一个接口可以继承多个接口。就像一个类可以实现多个接口一样。
这些基本上是接口的特点。在编程中经常用到,而且在面试题中经常被问到。如果把这些特点说出来,面试官一定觉得你的基础还是蛮不错的。