java;抽象类与抽象方法

一、抽象类

——代表一个抽象概念的类
——没有具体实例对象的类,不能使用new方法进行实例化
——类前需加修饰符abstract
——可包含常规类能够包含的任何东西,例如构造方法,非抽象方法
——也可包含抽象方法,这种方法只有方法的声明,而没有方法的实现,常规类则不能使用抽象方法
——抽象类声明的语法形式为
abstract class Number {
. . .
}

二、抽象类的存在意义

——抽象类是类层次中较高层次的概括,抽象类的作用是让其他类来继承它的抽象化的特征
——抽象类中可以包括被它的所有子类共享的公共行为
——抽象类可以包括被它的所有子类共享的公共属性
——在程序中不能用抽象类作为模板来创建对象;
——在用户生成实例时强迫用户生成更具体的实例,保证代码的安全性
总结:高度概括的类,纯为了继承

三、抽象类举例

比如图形类,我们可以将将所有图形的公共属性及方法抽象到抽象类Shape。再将2D及3D对象的特性分别抽取出来,形成两个抽象类TwoDimensionalShape及ThreeDimensionalShape;2D图形包括Circles、Triangles、Rectangles和Squares等;3D图形包括Cube、Sphere、或Tetrahedron等。显然,我们不会拿Shape、TwoDimensionalShape及ThreeDimensionalShape去创建实例,这时我们可以将该类设为抽象类,在抽象类内定义一些公共属性或方法,方法可以是抽象的,也可以是非抽象的,比如TwoDimensionalShape中可以编写一个面积方法等,注意抽象类的继承类必须将超类的所有抽象方法全部实现。

四、抽象方法

——声明的语法形式为
【public/protected】 abstract (…) 【throws Exception】;
——仅有方法头,而没有方法体和操作实现
——具体实现由当前类的不同子类在它们各自的类声明中完成,具体实现相当于子类对父类方法的重写/覆盖,须遵守重写规则。
——抽象类可以包含抽象方法

五、抽象方法需注意的问题

——一个抽象类的子类如果不是抽象类,则它必须为父类中的所有抽象方法书写方法体,即重写父类中的所有抽象方法
——只有抽象类才能具有抽象方法,即如果一个类中含有抽象方法,则必须将这个类声明为抽象类
——除了抽象方法,抽象类中还可以包括非抽象方法

六抽象方法的优点

——隐藏具体的细节信息,所有的子类使用的都是相同的方法头,其中包含了调用该方法时需要了解的全部信息
——强迫子类完成指定的行为,规定其子类需要用到的“标准”行为

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值