java中接口和抽象类的联系_Java中抽象类和接口的区别与联系

甘肃科技纵横 2010 年(第 39 卷)第 5 期 信息技术 Java中抽象类和接口的区别与联系 靳恒清 (甘肃农业职业技术学院,甘肃兰州 730020) 摘 要:抽象类(abstract class)和接口(interfaces)在 Java 面向对象(object)程序设计语言中是支持类定义的两种不同的机制。正是由于这两种不同机制的存在,使得 Java 具有强大的功能。抽象类(abstract class)和接口(interfaces)之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本论述将对它们之间的区别进行一番剖析,以便让设计人员对二者在使用时有比较明确的抉择,以利于程序的流畅执行。 关键词:类;接口;抽象类 1 类(CLASS) 在所以面向对象(object)的程序设计语言的概念中,类(class)是同一类型事物数据的抽象,是对象共性的抽象,是客观对象在人脑中的主观反映,是一种抽象的数据类型;类包含了属性,方法,构造三部分。所有的对象(object)都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象(object)的,如果一个类中没有包含足够的信息来描绘一个具体的对象(object),这样的类就是抽象类(abstract class)。抽象类(abstract class)用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 在面向对象领域,抽象类主要用来进行类型隐藏。为了能够实现面向对象设计的一个最核心的原则 OCP (Open- Closed Principle),抽象类是其中的关键所在。 2 抽象类(abstract class) 使用 abstract 修饰的类为抽象类,抽象类是用来被继承,子类去实现的。抽象类就像一张图纸,实现后的子类则就像根据图纸生产的产品。abstract 类与多态性密不可分的。抽象类可以声明一个引用。抽象类不能创建对象。抽象类可以调用静态方法,不能调用非静态方法。一个抽象类可以被子类继承,子类也可以是抽象类。一个类中有抽象方法,则这个类必须是抽象类。一个抽象类中不一定要有抽象方法。abstract 类是一种很有用的语法,在实际开发中,它主要用来抽象出一些子类的共性,在抽象类中只声明方法,表示出方法能做什么,但因不同子类可能方法的实现不一样,所以方法实现就是个性。抽象类中抽象方法可有可无,但通常都含 有抽象方法(这是定义抽象类的目的所在),就是让子类继承。如果子类没有把抽象类中所有的抽象方法都重写,则这个继承了抽象类的子类也会成为抽象类;如果子类把抽象类中所有的抽象方法都重写,则这个子类就可以实例化了。在现实世界中,某类事物能做什么是可以确定的,所以现实中的类常常都是抽象类,它的抽象方法的定义与实现分开的,抽象类就是用来定义一类事物能做什么,而子类可以实现抽象类的部分抽象方法。抽象类对象是不能独立存在的,但若创建子类时候,先构造父类对象则是可以的。抽象类是有无参构造的,是留给子类使用的。抽象类就是用来定义一个标准,定义某类事物的方法标准,而让其被不同子类继承,去覆盖实现这些方法。对于调用者而言,只需知道抽象类的方法定义,则就可以调用不同子类的实现。抽象类屏蔽了不同子类的方法对调用者的差异。 3 接口(interfaces) Java 中的接口(interfaces)是一系列方法的声明,是一些方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值