首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>java教程>资讯:Java关键字之abstract浅析

Java关键字之abstract浅析

www.jz123.cn  2010-05-07   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

  abstract:

  修饰符号,声明抽象方法和抽象类。声明方法时表示该方法只有特征签名,没有具体实现。而是把具体实现留给继承该类的子类,并且抽象类不能直接用new来实例化对象即使有公共的构造函数。

  1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。

  2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。

  abstract和interface:

  基本用法:

  abstract可以有自己的数据成员,也可以有非abstract的成员方法。

  interface只能有static final的数据成员(一般不定义数据成员),不允许有非abstract成员方法。

  高级用法:

  abstract class是一个类,抽象的而已,不能被实例化,用于子类继承,表示“is-a”的关系。关键字extends,java中只能是单继承。子类继承时,可以不全部覆盖父类的abstract方法,这是子类任然是一个abstract class。

  interface是接口,没有类的概念,是一份“大家”都遵守的契约,用于实现接口,表示“like-a”的关系。关键字implements,可以实现多个接口。实现接口时,必须覆盖接口的所有方法。

  例子:(门和报警门)

  抽象类 门

  abstract class Door {

  abstract void open ();

  abstract void close ();

  }(并不是所有的门都有“报警”功能,但是所有的门都有“开”和“关”的功能)

  接口 报警功能

  interface Alarm {

  void alarm();

  }

  有报警功能的门

  class AlarmDoor extends Door implements Alarm {

  void open() {...}

  void close() {...}

  void alarm() {...}

  }


上一篇:Java采用相对路径连接access数据库 下一篇:[Java经典题目]利用if语句判断分数等级

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图