抽象类的特点
**1.**不能直接创建new抽象类对象:extends;
**2.**必须用一个子类来继承抽象父类;
**3.**子类必须覆盖重写抽象父类当中的所有的抽象方法;
**4.**创建子类对象进行使用;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210413205741748.png#pic_center)
extends关键字,继承了Animal抽象类
注意事项:1.名字一样,没有abstract关键字
2.有大括号,里面有方法的实现
//覆盖重写
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210413205752736.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NTY4MDIwNA==,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210413205826383.png#pic_center)
创建的时候,勾选抽象,abstract关键字出现,也意味着这是我们的一个抽象类。
修饰符 abstract 返回值 方法名:
没有大括号,没有方法体,没有实现的方法