java中的抽象类和抽象方法

抽象类

        在关键字class前有修饰符abstract 加以修饰,抽象类没有具体的对象的概念类。例如由“鸟”这个类,可以派生出“麻雀”、“鸽子”、“鹦鹉”等子类。只要是一直实实在在的鸟,就一定属于一种具体的鸟。所以说“鸟”这个类只是代表了所有鸟类的共同属性,作为一个抽象的概念,其没有具体的对象。(即抽象类不能创建对象,必须产生其子类,由子类创建对象)

        运用这种方法的好处是,如以上面“鸟”类的例子为例。利用抽象类的概念,实际上是一种经过优化了的概念组织方式:把所有鸟类的共同特点抽象出来,概括形成鸟类的概念;其后在描述一种具体的鸟时,就只需描述它与其它鸟的不同之处,而不必再重复它与其它鸟类的相同特点。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

抽象方法

        有修饰符abstract修饰的方法,方法只有声明部分,而没有方法体的定义。如在抽象类Telephone中定义一个计费方式的方法:

         abstract void charge_Mode();

        那么为什么在这里不定义方法的实现呢?以上述Telephone这个抽象类为例,此”电话类“是从所有电话中抽象出来的共同特性的集合,每种电话都有不同的“计费方法”(charge_Mode),即方法体中的具体操作不一样。至于方法的具体实现,则留到Telephone类的不同子类的定义中完成。即个子类继承了父类的抽象方法后,再分别用不同的方法来重新定义charge_Mode这个方法,形成若干有相同名字、参数列表、目的一致但是具体实现方法不同的方法。

        这样Telephone这个类的所有子类都对外呈现一个相同名字的方法和统一的接口,从而隐藏了具体的细节。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

抽象类和抽象方法的关系

        所有抽象方法都必须存在于抽象类中(一个非抽象类中出现抽象方法是非法的)。

        抽象类不一定只拥有抽象方法(抽象类可以包含非抽象的方法)。

        注:若一个抽象类的子类不是抽象类,则他必须实现父类中所有的抽象,包括父类继承下来的抽象方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值