码迷,mamicode.com
首页 > 其他好文 > 详细

抽象 & abstract关键字

时间:2017-03-11 17:39:01      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:imp   应该   tty   操作   属性   void   list   抽象方法   否则   

抽象类
抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提供具体实现的对象的类
随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫抽象类。

个人理解:子类变得越来越多,涵盖范围越来越广,以至于囊括几乎所有情形,父类变得更多是一种“形式”,甚至变得无用。比如“人”作为父类,而当子类涵盖几乎所有类型的“人”后,父类“人”就变得抽象。

1.抽象类不能被实例化
2.但是抽象类有构造器(否则子类怎么调用super()呢)且可以正常定义        “凡是类,一定有构造器”
3.抽象方法所在的类一定是抽象类,但抽象类中可以有非抽象方法
4.如果抽象类的子类没有把该抽象类的所有方法重写(相当于该子类还有抽象方法),那么此子类须是抽象的(参见第3点),但如果把抽象父类的方法全部重写了,那么此子类可以是非抽象的并被实例化(注意,这里的“所有方法”指的是所有的父类的抽象方法)

一旦类被定义成abstract的之后,此类中的方法没有了实际作用,但是方法声明还是要保留(因为子类要重写/实现,或者在使用多态性时让编译通过):
抽象方法
1.格式:没有方法体和大括号,如
  1. public abstract void eat();
2.抽象方法只保留作为一个方法的功能而存在,具体执行的操作交由子类完成(实现

abstract

使用限制:不能与private(私有方法不能被重写,详见方法的重写)、final、static共用,不能修饰属性、构造器。

抽象 & abstract关键字

标签:imp   应该   tty   操作   属性   void   list   抽象方法   否则   

原文地址:http://www.cnblogs.com/chendifan/p/6535590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!