用关键字abstract修饰的类就是抽象类,它是所有子类的公共属性(数据)和行为方法的集合,抽象类没有具体对象,是处于组织概念的层次关系而存在的类。下面举例说明为什么要抽象类。
为了描述各种具体的鸟类,如鸽子、麻雀、孔雀、凤凰等,从概念和组织层次关系来看,可以从这些具体的鸟类中抽象出一个并没有具体实例的鸟类。所定义的鸟类具体所有具体鸟类的共同特性。然后通过继承鸟类可以派生鸽子、麻雀、孔雀、凤凰等子类,这样子类中只需描述各种鸟类其自身特点,而不必描述各种具体鸟类的共同特点,这种分层次的组织方式使各种鸟类概念清晰、层析分明、且简单有效并易于扩充。这里的鸟仅仅作为一个抽象概念而存在,代表了所有鸟的共同属性,任何一个具体的鸟都是由鸟的共性加鸟的特性而形成的某个子类的对象。
用关键字abstract修饰的方法就是抽象方法(没有抽象变量),抽象方法只有方法头,后面跟一个分号(;),没有方法体,抽象方法的方法体可在其子类中根据子类的具体情况来实现,抽象方法只存在抽象类或接口中。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)