JAVA中的抽象类

来源:互联网 发布:c语言大型程序源代码 编辑:程序博客网 时间:2024/06/07 09:30

抽象类:从众多的事物当中,抽取出来的共同的本质的特征。

例:苹果,香蕉,葡萄,他们的共同特征就是都是水果,得出水果概念的过程,就是抽象的过程。

抽象类与抽象方法:

1.凡是用abstract 修饰符修饰的类被称为抽象类。凡是用abstract修饰符修饰的成员方法被称为抽象方法。

2.抽象类中可以有零个或多个抽象方法,也可以包含非抽象的方法。

3.抽象类中可以没有抽象方法,但是,有抽象方法的类必须是抽象类。

4.对于抽象方法来说,在抽象类中只指定其方法名及其类型,而不书写其实现代码。

5.抽象类可以派生子类,在抽象类派生的子类中必须实现抽象类中定义的所有抽象方法。

6.抽象类不能创建对象,创建对象的工作由抽象类派生的子类来实现。

7.如果父类中已有同名的abstract方法,则子类中就不能再有同名的抽象方法。

8.abstract不能与final并列修饰同一个类。

9.abstract 不能与private、static、final或native并列修饰同一个方法。


java抽象类体现数据抽象的思想,是实现程序多态性的一种手段。

讲一个具体例子体现抽象类的好处:

假设我们要编写一个计算矩形、三角形和圆的面积与周长的程序,若按前面所学的方式编程,我们必须定义四个类:圆类、三角形类、矩形类和使用前三个类的公共类,它们之间没有继承关系.程序写好后虽然能执行,但从程序的整体结构上看,三个类之间的许多共同属性和操作在程序中没有很好地被利用,需要重复编写代码,降低了程序的开发效率,且使出现错误的机会增加。

仔细分析上面例子中的三个类,可以看到这三个类都要计算面积与周长,虽然公式不同但目标相同。因此,我们可以为这三个类抽象出一个父类,在父类里定义圆、三角形和矩形三个类共同的数据成员及成员方法。把计算面积与周长的成员方法名放在父类给予说明,再将具体的计算公式在子类中实现.

这样,我们通过父类就大概知道子类所要完成的任务,而且,这些方法还可以应用于求解平行四边形、梯形等图形的周长与面积。这种结构就是抽象类的概念。

Java程序用抽象类(abstract class)来实现自然界的抽象概念。抽象类的作用在于将许多有关的类组织在一起,提供一个公共的类,即抽象类,而那些被它组织在一起的具体的类将作为它的子类由它派生出来。抽象类刻画了公有行为的特征,并通过继承机制传送给它的派生类。在抽象类中定义的方法称为抽象方法,这些方法只有方法头的声明,而用一个分号来代替方法体的定义,即只定义成员方法的接口形式,而没有具体操作。只有派生类对抽象成员方法的重定义才真正实现与该派生类相关的操作。











0 0
原创粉丝点击