蓉杠学习网

j***a语言extends,J***A语言简介

大家好,今天小编关注到一个比较意思的话题,就是关于java语言extends的问题,于是小编就整理了1个相关介绍Java语言extends的解答,让我们一起看看吧。

  1. Java为什么要区分extends和implements?

JAVA什么区分extends和implements?

我发现,编程语言中的很多东西其实是为了防止学渣挖坑。为了引导学渣少挖坑多铺路,j***a平台推出特殊的抽象类(接口),要求开发者继承实现)特殊的抽象类(接口)时必须重写所定义方法

这是一个非常好的问题,在J***a的学习和认知过程中,好的问题能让学习者迅速掌握J***a语言的脉络从而建立J***a编程思维

java语言extends,JAVA语言简介div>
图片来源网络,侵删)

那么J***a为什么要区分extends和implements呢?在我看来有以下几点原因:

第一,定位不同。extends的定位是“扩展”(类扩展类、接口扩展接口),而implments的定位是“实现”(类实现接口)。在J***a中,扩展是同一类事务之间的关系,而实现则是实体和抽象之间的关系。但是这里面有一个例外,那就是“抽象类”,抽象类也称为“半抽象”,其实抽象类***用implments在逻辑上也是能讲得通的,但是J***a为抽象类赋予的定义是“类”而不是“接口”,所以这也就能说得通了。

第二,用法不同。extends可以用于类与类之间,也可以用于接口与接口之间,但是extends用于类之间与用于接口之间是不同的。extends用于类之间更倾向于继承,而用于接口之间更倾向于扩展,继承只能是单继承,而扩展则可以多扩展。implements则是类与接口之间的应用(实体与抽象之间的应用),一个类可以同时实现多个接口而不影响的清晰性。

java语言extends,JAVA语言简介
(图片来源网络,侵删)

第三,表现不同的面向对象思想。J***a当中extends与implements与多态的关系非常密切,可以说没有两个关键字就没有多态。但是这两个关键字体现的却是不同的面向对象思想,一个强调拿来主义,另一个则强调按标准办事(抽象也往往称为标准)。

其实extends与implements之间也有相同的地方,比如都是对体系结构的表述,也都可以完成属性传递等。

我在头条上写了关于J***a学习的系列文章,如果大家感兴趣的话,可以关注我的头条号并查看,如果有关于J***a编程方面的问题,也可以咨询我,谢谢!

java语言extends,JAVA语言简介
(图片来源网络,侵删)

这个问题涉及到面向对象的三个基本概念(继承,多态,封装)中的继承和多态。请听我慢慢道来。

继承

究其本质继承有两个目的。

  • 统一接口使子类可以被重载,这是通过抽象类(Abstract)实现的。在讲到多态的时候,再详细说说接口的应用。
  • 由父类保证子类的一致性,这是通过extends实现的。教科书上喜欢用猫狗继承了动物的共性来解释子类继承父类的概念。我倒认为这个说法容易导致混乱。讲一个真实的事例,我需要对同一组数据做两种输出报表,一个是网页而另一个是Excel报,重要的事情是保证这两个报表的数据一致。因此需要把数据部分做成父类,输出部分做成两个子类。可我的程序员只考虑了报表这一共通属性,反其道而行之,做出来的程序Bug无数致使项目一度失控。

多态

多态的目的是实例化时可灵活加载不同的类而无需变更接口。这是面向对象程序语言的一大特色。多态有两种实现方法。

  • 定义抽象类通过多个子类的继承实现多态。这个方法的好处是可以保证子类处理的一致性。这一点在上面已经解释过了。这样的重载被限制在单一的父类上,有些不够灵活。
  • 定义interface通过多个类的implements实现多态。这个方法可以最大限度地把多态的特性发挥出来。需要注意的是,虽然类的接口相同但处理是完全独立的。

两个实现重载的方法各有利弊,可根据需要灵活运用。

小结

概括起来,extends实现了继承,implements实现了多态,对J***a来说两个语句都很重要,不可或缺。通过运用继承和多态这两个特性,以J***a为代表的面向对象的程序语言可以实现程序架构的继承(抽象工厂模式是个典型的例子),在构建大型系统方面展现了巨大的优势。

设计模式有兴趣的小伙伴可以提出问题,我有很多故事可以分享哦。

到此,以上就是小编对于j***a语言extends的问题就介绍到这了,希望介绍关于j***a语言extends的1点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/24473.html

分享:
扫描分享到社交APP