对Java中接口和抽象类的一些认识

 谢谢各位给我的回复!

看了大家的回复,我也有些感受。接口只是一些动作的定义,完全没有动作的具体描述,就是说它不是动作的载体。而类是对一个客观事物的描述,可以有属性,有方法,既可以只给出定义再由它的孩子(派生出的子类)来承载,也可以自行完成。从某种角度讲他们可以互相替换。接口就像我手边的USB连接线,一头大,一头小,这个连线自身什么都不是,因为没有外在的事务,它不能完成任何事情(捆东西不算),但是它承担起连接电脑和mp3的作用,又不限如此,小头可以连数码相机、移动硬盘等等,大头可以连电脑、电视甚至另外一根USB连接线。类呢?就像是一个路由器,可以把路由器简单的当作Hub用,也可以设置为网关,再配上防火墙,完全当作一台电脑用。殊途同归吧!函数式也好,OO也罢,最终的目的就是让编程更向着贴近自然的方向发展。在Java中因为类是不多继承的,不知道是不是因为此发明了接口,但两者确实又各有各的用途。比如,定义个哺乳动物类,这个是基类,具有很多很多的属性,由此可以派生出人、马、羊等等子类,从理论上讲人可以有一个子类从马类和羊类继承而来,但明显符合逻辑,也许这就是java中不能多继承的原因吧。。。呵呵。。。完全是我的臆断。那么这些哺乳动物类的子类都有一件事情需要完成,吃饭,但是吃饭这个动作由不单单是哺乳动物类才有,其他任何动植物都有,甚至汽车加油也可以认为是吃饭,那么如此众多的类都定义各自的吃饭方法吗?当然可以。另一种方法就是将吃饭单拿出来,作为一个接口,就叫吃,至于吃的是什么以及什么在吃,都是具体的类需要完成的类。而接口是可以多重继承的,就像电脑一样,有USB接口、PS2接口、串口、并口等等一堆,每个接口负责完成一个任务,就是将特定设备和电脑连接起来,起到桥梁的作用。感觉抽象类和接口的关系非常的微妙,有点像西餐刀,做西餐需要很多的刀,切菜的,切肉的,而中餐一般就是两把,主要目的是生熟分开,不讲卫生的完全可以通用,在具体使用时,也是切什么东西用什么刀顺手,切肉的切蛋糕总不好使吧。。。所以,我觉得也只有在大量的实际开发中才能真正的理解他们了,物尽其用!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值