java基础——接口与抽象类的异同点

一、相同点

1、接口和抽象类都不能直接实例化;

二、不同点

1、接口中不能有构造函数,抽象类中可以有构造函数;
2、接口中只能有常量属性,抽象类中可以有一般属性;
3、接口中所有的方法都是public的,而抽象类中的方法可以被public、protect、default和private修饰
4、接口中所有的方法都是抽象的,不能有方法题,抽象类中可以有方法体;
5、接口中不能有静态方法(jdk1.8之后可以有静态方法,必须要有方法体),抽象类中可以有;
6、java支持多实现,但是只支持单继承;
7、抽象类中可以没有抽象方法;

总结:

对于抽象类:几乎没什么约束,只是多了一个abstract修饰符,其他的没什么要求;

对于接口:约束很死。属性只能是常量(public static),方法必须是抽象类型的;不能有构造函数和静态方法

接口可以继承接口,而不用实现其方法;
抽象类可以实现接口,而不用实现其方法;
抽象类可以继承抽象类,而不用实现其抽象方法

你可能感兴趣的:(java基础知识,java,基础,接口和抽象类,抽象类,接口)