永发信息网

接口与继承的关系

答案:3  悬赏:60  手机版
解决时间 2021-07-30 09:54
接口与继承的关系
最佳答案

举个形象的例子:



鸟(基类)会飞, 麻雀也会飞。 飞是继承。


鸟会飞,飞机也会飞。 这个“飞”是接口.

全部回答

我以前写的关于面向对象的特点,其中有提到:

比如上帝要设计一个方法,用于描述狼吃羊这个事情,某只狼吃了某只羊,你可以面向过程地吃,eat(狼A, 羊A),也可以面向对象地吃,狼A.eat(羊A)。差别在哪里?只是写法有点变化。 好,那么我们帮上帝模拟整个生物界,这里面很多东西可以吃,大鱼吃小鱼,小鱼吃虾米,吃不吃皮,吐不吐骨头,这个时候再来修改这个eat函数,复杂吗?eat里面要判断很多东西,假如上帝很勤劳,所有代码都自己设计,那没关系,没太大区别,判断就判断呗。 假设上帝没足够精力来管理整个东西了,雇了一群天使来协助设计,每个人都来修改这个eat函数,当然可以拆分,wolfEatSheep(), tigerEatWolf(),然后在eat里面判断参数来分别调用,把函数分下去让每个人做,可以。 动物不光要做吃这个事情,要能跑能跳,会说会叫,又多了一堆函数,每个里面都这么判断,相当相当的烦。怎么办?我们来面向对象一下。 现在开始按照动物拆分,100个人,每人写一种动物。写哪种动物,就站在哪种动物的角度考虑问题,我吃的时候怎么吃,跑的时候怎么跑,都跟别人无关,这么一来,每个人就专注多了。每个动物只关注我要怎么才能活着,不必站在上帝的角度考虑问题。这个过程,是类的划分过程,也就是封装的过程。 这时候,上帝觉得自然界光有动物是不行的,还要有植物,刚才说的这些都是动物,植物的特点跟动物有很大区别。假设你是上帝,为每种生物安排衣食住行,那是相当复杂的。偷懒吧,上帝说,植物们,你们自己生长吧,动物们,你们吃喝玩乐吧,假如能达到这个效果,那很省事。 上帝用一个循环来遍历所有动物,让他们吃喝玩乐,用另外一个循环让植物欣欣向荣。动物跟植物为什么要区别对待?因为它们不是同样的东西,能做的事情不同。所有动物派生于动物这个基础类型,从动物这个种类下,又分出各种纲,各种目,各种属。狮子是哺乳动物,猴子也是,但是狮子是猫科动物,猴子是灵长动物,这就构成了一个倒着的树状体系,一层一层形成继承关系。哺乳动物会喂奶,那么所有继承自哺乳动物的,都自动拥有这个特征。整个这一切,构成了继承链。 假设有一天由于变异出现了新物种,不必劳烦上帝关照,只要鉴别一下它属于什么类型,就知道能做什么事了,它的一举一动,都必然拥有它所继承的种类的特征。 这样就能描述生物界了吗?不,还有那么一些怪胎的存在。你认为哺乳动物都不会飞,那就错了,因为蝙蝠会飞。蝙蝠会飞是它自身的特性,并非继承自哺乳动物,但是“飞”这个动作,却非蝙蝠独有。如果把“飞”定义成接口,那就很美好了,蝙蝠实现了它的飞行接口,虽然内部实现跟鸟类有所不同,而且这并不影响它的哺乳动物特性。 总之,是否面向对象只是思维方式的不同。做一个软件,你面向对象也能做,不面向对象也能做。我的观点,如果关注可维护性和协作性,从目前的角度,面向对象是很好的选择,它很自然,很优雅,优雅得只要打一个“.”,你就能想起来什么事能做,什么事不能做。

简单来说 接口可以被继承

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梦见男朋友和别人结婚了?
森林的唯美句子,描写夜晚森林环境的句子
谁帮忙取个《完美世界》有个性的ID?
王羲之的行书和赵孟頫的行书哪个更好学更实用
纽曼 F6 MP4 在华强北又卖的吗?多少块?
用早孕试纸测试出来的结果是不是一定是对的,
初一年级的一道数学题
偃师市洛阳城关镇杏园小学地址在什么地方,想
慢性胰腺炎吃什么药,胰腺炎用什么药好的快
怎么弄到病毒
蓝色的瑞星全功能安全软件和黄色的Rav2009有
亲口说分手,然后还说自己有多心痛?这有多虚
此电脑的IP
怎么样可以瘦脸最简单的方法
怎样把空间装扮得很漂亮?
推荐资讯
DNF碧玉套装在那里打得到?
有临沂兰山的朋友吗
我QQ校友创建高中的班级了我想自己再建一个初
电锯惊魂7好久出来
镇平县南阳走四方鞋店(菜市街)地址有谁知道?
孩子三周半了需要学习写字吗?
汨罗市岳阳中国邮政储蓄银行24小时自助银行在
徐州到薛城多少公里,微山韩庄到枣庄峄城汽车
赤壁市咸宁赤壁市实验小学(车站校区)哪位知道
以前魔域的新疆三十区!现在到哪去了?
伍家岗区宜昌市司法局在哪里啊,我有事要去这
如何将一件商品打入一个城市
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?