12.抽象类、接口的概念?两者的异同点?
时间: 2024-02-01 10:12:58 浏览: 152
抽象类和接口是Java中的两个重要概念。
抽象类是一种不能实例化的类,它只能被继承。抽象类中可以包含抽象方法和非抽象方法,抽象方法是一种没有实现的方法,它只有方法签名,没有方法体。非抽象方法是具有实现的方法。抽象类可以包含属性、构造方法、静态方法、final方法等。
接口是一种完全抽象的类,它没有任何实现。接口中只包含抽象方法、常量和默认方法。抽象方法的定义和抽象类相同,没有方法体,只有方法签名。常量是接口中的变量,它们必须是public、static和final的。默认方法是Java 8中新增的特性,它们有方法体,但可以被重写。
异同点:
1.抽象类和接口都不能实例化,只能被继承或实现。
2.抽象类可以包含抽象方法和非抽象方法,而接口只能包含抽象方法、常量和默认方法。
3.抽象类中的方法可以有方法体,而接口中的方法没有方法体。
4.一个类只能继承一个抽象类,但可以实现多个接口。
5.抽象类可以有构造方法,而接口不能有构造方法。
6.抽象类中的成员变量可以是任何访问修饰符,而接口中的成员变量只能是public static final的常量。
7.抽象类的继承使用关键字extends,接口的实现使用关键字implements。
阅读全文