抽象类是一种抽象能力弱于接口的类,在Java中使用abstract关键字表示。如果把接口形容为狗,那抽象类可以理解为毛发是白色、小体的品种,而实现类可以是具体的类比如牧羊、泰迪等。
1 package day04;
2
3
4
5 public interface Dog {
6
7 void FurColor();
8
9 }
10
11
12
13 abstract class BlackDog implements Dog {
14
15 public void FurColor() {
16
17 System.out.println("Fur is black");
18
19 }
20
21
22
23 abstract void SmallBody();
24
25 }
抽象类的特征如下:
- 如果一个类中有抽象方法,那么这个类一定是抽象类,也就是用abstract修饰的方法一定是抽象方法,具有抽象方法的一定是抽象类。实现类只有具体方法的实现。
- 抽象类中不一定有抽象方法,抽象类也能有具体的方法,这个根据实际情况确定。
- 抽象类中的约束不像接口那么严格,可以在抽象类中定义构造方法、抽象方法、普通属性、方法、静态属性和静态方法。
- 抽象类和接口一样都不能实例化,实例化只能实例化具体的类。