汽车和轮胎

    interface和abstract class 一对很相近的概念,可以说接口是特殊的抽象类。然而,既然有了abstract class,为什么还需要interface呢?

    语言是用来对大千世界进行抽象的工具,由于抽象的角度不同,因而产生了不同的语言。java,一种面向对象的语言,其抽象的基本理念是把世界划分为许多事物。即世界是由一个个的事物组成的,每个事物之间都可以有联系。我们可以说一辆车是一个事物,一个轮胎是一个事物,这是实物,当然也可以说一个计划是一个事物,这是一个虚物。

    既然这样,那么这个世界之所以能够正常运转,当然是因为事物之间有着相互的联系。那么事物之间都有哪些联系呢,孩子和父亲是一种联系,农民和锄头是一种联系,汽车和轮胎是一种联系。这里面饱含了继承的关系、调用的关系以及包含的关系。

    而interface和abstract class的出现就是基于这种考虑的,我们从不同的角度去描述事物之间的联系就必须有不同的说法,因此java提供了interface和abstract class,interface描述的是包含的关系,象汽车包含轮胎,轮胎是汽车的一部分,轮胎的功能——滚动,是汽车的一个功能,因此轮胎要作为一个接口。而孩子当然继承了父亲的特征,不是父亲的一部分,因此我们要用继承的关系,可以用abstract class表示父亲。

    当然interface和abstract class 都可以定义方法和常量值,一般interface无方法实现。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值