/**接口是特殊的类(抽象类)
* 类中的所有方法默认抽象类,可以省略abstract
* jdk1.8后如果在其中有普通方法,加入default
* 1.可以继承类,但必须也是接口类;可以同时继承多个接口
* 2.不允许存在成员变量;但是可以出现常量;public,final,static
* 3.接口不能实例化
* 4.不存在构造方法,抽象类同样
* 5.静态方法调用,方法名+类名
* */
- 抽象类和普通类的区别
1、语法不同,抽象类是被abstract修饰的类,普通类一定不能被abstract修饰;
2、抽象类中可以有抽象方法,普通类一定不能有抽象方法;
3、抽象类不能被实例化,普通类可以去实例化调用;- 创建对象
4、抽象类被继承时,子类必须重写全部的抽象方法,或者将子类声明为抽象类;普通类继承普通类的时候,没有限制;
5、抽象类中可以有抽象方法和普通方法,普通类中只能有普通的方法。
2:接口与抽象类的区别 -
- 抽象类使用关键字abstract class修饰,接口使用关键字interface;
- 抽象类使用关键字extends实现继承,接口使用implements来实现
- 抽象类中可以包含抽象方法和普通方法,接口中只能有抽象方法;1.8之后是允许有一般方法的
- 抽象类可以有构造方法,接口中不能有构造方法;
5、抽象类可以有成员变量,接口中只能有常量;
6、抽象类只能单继承,接口可以多继承;
7、抽象类里面的方法可以是public,protect,private,接口的方法只能是public;