java的若干问题(1)——继承、多态、抽象类与接口

news/2024/10/18 9:24:25/

今天,我们介绍一些关于继承、多态、抽象类与接口之间的一些问题与困惑。

1、继承的概念。

继承的关键字extends(扩展)
继承只允许多层继承,不能多重继承。(C++可以多重继承)
继承中,父类定义无论是属性还是方法,必须采用protect及以上的权限,子类才能进行访问。但是可以采用方法进行间接访问。
2、继承的本质。
在继承中,子类对于父类的继承源于构造函数中,对于父类的构造。也就是说子类在进行构造函数时,要先进行父类构造函数,才会进行自己的构造函数。(通常是在构造函数第一句super())。
3、继承中方法的覆写。
子类可以写同父类中相同的方法,即方法名,参数及返回值均相同,只不过函数体不同的方法。但是其访问权限一定要比父类的大。
如果要调用父类中已被子类覆写的方法,要用super.方法名来进行,如果用this.方法名,则会调用子类的方法。
4、覆写与重载的区别。
覆写是子类对父类方法的覆写,通常简写为Overriding,他要求方法名、参数及返回值均相同,只会发生在继承类中。
而重载是对同一个方法名,有不同的参数或者返回类型的函数。
5、继承中属性的覆写
同方法覆写相类似。
6、覆写的属性和方法的访问。
遵循如下原则:
this:如果使用this,则先会在本类中寻找,如果没有所要找的,则会去父类中找。
super:直接去父类中查找目标。
7、继承使用的方面
主要是对于一个大类具有相同的属性,即对类的进一步概括而形成的类,通常称为父类。
继承的使用的好坏,取决于父类设计的好坏。
8、final关键字的注意事项。
final也称为完结器,可以声明类、属性、方法。
final声明的类不能有子类,final声明的方法不能被覆写,final声明的属性不能被修改。
final声明的变量必须用大写。
public static final称为全局常量。
public static 称为全局变量。

9、在对类进行设计时,永远不要去继承一个已经实现好的类。不然的话,在多态的情况下会产生一定的错误。

10、抽象类的的相关事项(abstract)
一个类如果包含了一个抽象方法,则该类一定是抽象类。
一个抽象类不一定有抽象方法。
抽象类必须通过继承来使用,不能实例化,相当于模板功能。
子类继承抽象类,必须覆写所有的抽象方法。
其余之外,抽象类和普通类没什么区别,同样有属性和构造方法。
11、接口的相关知识(interface)
接口里面方法和变量全部是公有的,对于变量来讲则是常量。
一个类(包含抽象类)可以实现多个接口,但是要必须实现所有的方法,不过抽象类可以不用实现接口的方法。
接口可以继承接口,同样用extends就可以,而且可以集成多个。
12、抽象类和接口的区别。
抽象类更像是一种类,他只不过是包含了抽象的方法,换言之,如果没有抽象方法,它完全可以不用是抽象类。
但是接口更像是抽象方法的集合,它里面只有抽象方法和全局常量,但是可以多个实现,这是为了弥补单继承类的缺陷而设计的。

13、多态
多态的来源 继承和重载与覆写
多态的类型 向上转型(父类拥有子类的特性) 向下转型 (子类从父类转移过来)
向下转型之前一定要向上转型,不然转移不成功。
14、instanceof作用
主要是判断一个对象属不属于一个类
这个主要是对多态的一个补充,用这个进行判断时,向上转型就会安全很多。

15、抽象类的应用
抽象类的应用主要是用来做模板类。就如同一个请假条一样,需要什么,再往里面填什么。比如是病假的,是事假的,无论是什么请假条,只需要展示一下,大家就都知道有什么了。
16、接口的应用
接口就如同电脑硬件接口一样,是用来制定标准的,即比如电脑要插USB接口,那么电脑只接受USB类型的,你只需要定义一个USB接口,其他设备实现一下接口的具体内容,到时候就能对接上了。
这么来讲,接口还是一种类型。或者说,接口就如同父类一个级别一样。
17、设计模式,工厂模式
顾名思义,就是做一个代工厂,那么就如同你要做一部苹果手机,工厂只能做苹果手机,但是具体是苹果5S还是6S你不清楚,这时候就要用工厂模式,无论是5S还是6S都需要制作,这个制作时一样的,那么只需要给个参数,确定是生产5S还是6S就行了,这就是工厂模式。
18、设计模式,代理模式
顾名思义,就是把一个事情交给一个代理去做。通常这件事情会有一系列相关的任务和东西要落实,这时候就可以交给代理去做。同样的事情,只需要把真正要做的事情放到代理的工作上即可。
19、设计模式,适配器模式
顾名思义,就是找一个适配器,其目的在于不实现接口里的所有方法而采用的中间的抽象类。在中间的抽象类中,把接口里所有的方法都覆写一遍,方法体为空,等到真正继承适配器类时,再有选择的实现所需要的方法。


http://www.ppmy.cn/news/755048.html

相关文章

苹果股票评级遭投行罕见下调 新产品已推不动股价上涨

据外电报道,尽管苹果在周一的全球开发者大会(WWDC)中发布了包括智能音箱HomePod在内的一系列新硬件产品和iOS 11等软件和服务,但由于一位投行分析师罕见的下调该公司股票评级,导致该公司股价见光死,未能随利好消息上涨。 投行Paci…

苹果用户:你被“霸权”政策刺伤过吗?

身为苹果的铁杆支持者,我买过很多苹果设备。虽然相对来说,苹果设备的价格相较同类产品较高,但正所谓物有所值,其带来的畅快体验也是其他设备无法媲美的。尤其是iPhone、iPad、Macbook组成的“三叉戟”,让我体验到很多乐…

苹果在华遭遇断崖式下滑,是谁搞的?

美国苹果公司的光芒正在褪去。过去一年,用“糟糕透顶”来形容这家公司的表现绝不为过,尤其是中国市场的急速下滑,对苹果而言可以说是巨大的打击。 据苹果公司最新公布的第三季度财报显示,其营收424亿美元,低于去年同期…

苹果6s解除耳机模式_三星,苹果最好的损友!从3GS损到iPhone 12从不留情|三星|iphone|手机|新iphone...

几乎每年,苹果的新机发布过后,都会有个小精灵鬼准时上线,给予无情吐槽。即使是苹果这样好脾气的谦谦君子,年年被这么怼,一时半会估计也是气得有话说不出,呛得半死。今年也不例外,iPhone 12系列新…

代码随想录算法训练营第58天 | 739.每日温度 + 496.下一个更大元素 I

今日任务 目录 739.每日温度 - Medium 496.下一个更大元素 I - Easy 739.每日温度 - Medium 题目链接:力扣-739. 每日温度 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i…

如何发布插件到npm

首先 你需要注册一个npm账号 npm 网址:https://www.npmjs.com/ 点击 Sign in 跳转到登录页面 点击 Create Account 进行一个新建账户 注册完成后会有一封邮件发送一个一次性密码,到时候验证一下就行。 登录完成之后 点击你的头像 点击Account 进行验证…

路由器二次开发一步一步把工业路由器变成一个高端的可指定出网、节点和链路的路由器,包含详细过程及快捷脚本(四)

路由器二次开发一步一步把工业路由器变成一个高端的可指定出网、节点和链路的路由器,包含详细过程及快捷脚本(四)。 如果没有 路由器 可以采用 废旧的电脑,详细环境部署参考第(一)篇文章,这里采用800米的工业路由器j1900进行二次定制开发,可以自行规划部署进出网规则、…

工业级无线路由器端口映射教程

工业级无线路由器 广泛应用于电力、交通、环保等行业,实现数据远程采集、无线传输、物联网/互联网接入、无线上网、数据远程监测、设备远程管理控制、图像视频远程采集传输等功能。经常在做物联网数据传输,需要传输到内网中,就要用到端口映射…