抽象类和接口的区别

来源:互联网 发布:家装招标软件 编辑:程序博客网 时间:2024/06/06 08:24

抽象类:当一个类被abstract关键字修饰时,该类成为抽象类

1.抽象类不能被实例化;

2.子类如果不是抽象类,则必须重写抽象类中的全部抽象方法;

3.abstract修饰符不能和final修饰符一起使用;

4.abstract修饰的抽象方法没有方法体;

5.private关键字不能修饰抽象方法;

6.抽象方法所在的类必须定义为抽象类;

7.抽象方法只能定义在抽象类中,但是抽象类中可以包含抽象方法,也可以包含普通方法,还可以包含普通类包含的一切成员;

接口:被interface修饰的类

1.接口不能被实例化;

2.访问修饰只能是public;

3.接口成员可以是全局常量和公共的抽象方法;

4.接口中可以定义常量,不能定义变量。接口中的属性都默认用"public static final"修饰,即接口中的属性都是全局静态常量。且接口中的常量必须在定义时指定初始值。

5.接口中的所有方法都是抽象方法,且默认为public;

6.接口中不能有构造方法;

7.接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类;

8.类只能继承一个父类,但是可以通过implements实现多个接口。一个类必须实现接口的全部方法,否则必须定义为抽象类。一个类在继承父类的同时又实现了多个接口时,extends必须位于implements之前。

0 0