多态和继承

news/2024/10/9 17:45:07/文章来源:https://www.cnblogs.com/hzy7/p/18454412

继承:通常意思就是儿子可以继承父亲的东西,在java里面也是一样的,当我们在同一个包内有多个类的成员变量/方法相同时可以使用继承,只可以在子非静态方法使用

 

继承就是把相同的成员变量/成员方法放在一个类中,然后使用extends这个关键字来让一个类来继承另一类从而达到代码的复用的作用,子类写在extends的左边,父类写在extends的右边,静态成员变量/方法不可以使用继承,因为静态变量不属于对象

 当子类和父类是同名的成员变量的时候,在子类访问这个同名的成员变量的时候,子类是优先访问的自己的,

 当子类继承父类,在父类非同名的的成员变量都是可以访问的,但是要单独访问父类中的同名的成员变量就要使用super这个关键字

 继承:对两个类的共性进行抽取

为什么继承:达到代码的复用

子类继承了父类的什么:继承了父类的成员变量/成员方法,在子类和父类有同名的成员变量/成员方法优先访问子类,如果想要访问父类同名的就要使用super这个关键字

 

子类构造方法:

 当父类有构造方法时,必须要先用子类调用父类的构造方法才可以使用,子类需要先帮助父类进行初始化之后,子类才能进行初始化,调用父类的构造方法需通过super()来完成,且必须放在子类方法的第一条语句

 super和this的区别:

1.都是在非静态成员方法中使用,this是访问本类的方法和属性,super是访问父类的方法和属性

2.在构造方法中,this()是调用本类的构造方法,super()是调用父类的构造方法,两种构造方法不可以同时使用,且都需要放在第一行,构造方法中super()是一定会存在,但this()不写的话则不存在

 父类和子类的打印顺序:

当父类和子类同时有静态代码块,实例代码块,构造方法,会优先执行父类的静态代码块,然后执行子类的静态代码块,后就是先执行父类的实例代码块和构造方法,在执行子类的

 

 

 portected关键字是修饰父类的成员变量和成员方法,即便父类和子类不在同一个包时同样可以达到调用的作用,但调用时子类要包含父类的包,要在子类的方法运用super关键字调用,最后在main方法调用子类的方法,实现父类的调用

 

final关键字是让你的一个类不被另一个类继承,让你的变量变成常量

组合:

将一个类作为另一个类的成员变量来使用,同样是为了实现代码的复用

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810644.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache DolphinScheduler社区9月进展记录

各位热爱 Apache DolphinScheduler 的小伙伴们,社区 9 月月报更新啦!这里将记录 Apache DolphinScheduler 社区每月的重要更新,欢迎关注! 月度 Merge Star 感谢以下小伙伴上个月为 Apache DolphinScheduler 做的精彩贡献(排名不分先后):@Mighten,@ChaoquanTao,@wangxj3,…

我国首颗可重复使用返回式技术试验卫星成功发射|数字孪生技术助力运载火箭仿真验证系统革命

9月27日18时30分,长征二号丁运载火箭在酒泉卫星发射中心一飞冲天,随后将我国首颗可重复使用返回式技术试验卫星——实践十九号卫星送入预定轨道,发射任务取得圆满成功。▲长二丁火箭发射升空​新一代运载火箭肩负着未来载人登月、深空探测等重大任务,不仅是我国航天事业的重…

解决mac 扩展屏色温闪烁问题(冷、暖色切换)

关闭原彩显示 即可 如果是此文是转载文章,本人会附上转载链接,此篇文章的版权归原创作者所属,如果侵权请与我联系,我会删除此文。 若没有标明转载链接,此篇文章属于本人的原创文章,其版权所属:作者:feiquan出处:http://www.cnblogs.com/feiquan/版权声明:本文版权归…

SSL证书是否可以给多个域名使用?

在当今数字化的网络环境中,SSL证书在保障网站安全、保护用户数据传输方面发挥着至关重要的作用。那么,SSL 证书是否可以给多个域名使用呢?这是一个在网站开发、运营和安全管理领域备受关注的问题。 SSL 证书能够给多个域名使用吗?答案是视情况而定,不同类型的 SSL 证书在多…

OOP实验一

任务1: 源码:1 #include <iostream>2 #include <string>3 #include <vector>4 #include <algorithm>5 using namespace std;6 // 声明7 // 模板函数声明8 template<typename T>9 void output(const T& c); 10 // 普通函数声明 11 void tes…

最近运行VBA代码时候出现这样错误,现已经找到了问题所在处

最近运行VBA代码时候出现这样错误,《我们遇到了一个无法恢复的问题》经过研究这是一个有关数据类型相关的问题

组件间通信--自定义事件

自定义事件实现通信的逻辑是给子组件的标签上绑定一个自定义事件。 在子组件中写触发事件,传入实参。 在父组件中定义具体事件方法体逻辑。 例如:<!-- 绑定自定义事件xxx,实现子组件给父组件传递数据 --> <Event2 @xxx="handler3"></Event2>在子…

Coppersmith定理

原理 用到格基规约和LLL算法。。。 啊?你问那是什么?去搜吧,反正我没看懂。 实现 有一个 e 阶的多项式 f, 那么可以:在模 n 意义下,快速求出 以内的根 给定 β,快速求出模某个 b 意义下较小的根,其中b≥​​​,是 n 的因数。一般采用sage下的small_roots(X=2^kbits,be…

威尔逊定理

初识威尔逊定理 什么是威尔逊定理,即对于一个质数p来说,有 (p-1)! ≡ -1 (mod p) 恒成立,其逆定理也成立,即对于一个数p来说若满足上式,则p一定是素数。 于是通过这个性质我们能够得到素数分布的函数: f(n) = sin(π*((n-1)!+1)/n) 当函数值为0时,对应n就是一个素数,但…

fiddler抓模拟器的手机包

1、fiddler中设置 a、设置抓取https接口 b.设置端口和允许所有设备连接 下载2、下载模拟器并打开模拟器 3、开始模拟器是平板模式,改成手机竖屏模式 改成900*1600 4、在window中的运行中输入:inetcpl.cpl b、点击连接 输入代理地址:127.0.0.1 端口号:8888 模拟器中的设置…