Java继承


prtyaa
prtyaa 2023-12-28 17:25:03 52004 赞同 0 反对 0
分类: 资源
Java不像C++,Python那样支持多继承,Java只支持单继承,但是可以多实现。

先看变量在继承当中的情况

如果要查看父类的num怎么办呢? 用 super。this代表的是本类对象的引用,super代表的是父类对象的引用。子类访问本类中的成员变量用this,访问父类中的成员变量(非私有)用super关键字


成员函数

但是子类出现和父类一模一样的函数时,当子类对象调用该函数,会运行子类函数的内容

这种情况是函数的另一种特性:重写(覆盖)

当子类继承父类,沿袭了父类的功能到子类中,但是子类虽具备该功能,但是功能的内容却和父类不一致,这时候,没有必要定义新功能,而是使用方法重写,保留父类的功能定义,并重写功能内容即可。。


静态只能覆盖静态

子类覆盖父类,必须保证子类权限大于父类权限,才可以覆盖,否则!编!译!失!败!

重写是存在于,子父类中的,而且重写的方法要有一模一样的返回值,方法名,参数列表


执行顺序,看图吧,不多说了。记住一点,创建子类的对象的时候,父类的构造也加载是因为子类的构造方法里省略了第一句super();


而且super() 会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是super(),

我不管你是自己手动无参的构造函数,还是父类默认的构造函数,总之父类要有无参的构造函数,否则编译都过不去。

假如父类真的没有空参数的构造函数呢? 那就子类构造函数的第一行,怎么样?显示的调用一下 假如父类是 fu(int x){} 那么子类就应该super(666)放在子类构造函数第一行就行了

再来说一下为什么要有super,因为子类是要继承父类的属性的。而属性又是根据构造方法来初始化的,所以你在父类中声明了变量,父类的构造方法是可以对这个变量进行赋值和修改的。当子类对父类进行继承的时候,子类是不是应该先参考一下父类对这个属性的操作啊?然后子类再考虑自身的情况,做进一步修改!如果没有super的话,那么子类继承父类的就是父类里原始的成员变量,这就等于没有继承,失去了继承的意义。我继承的话,本身就是想接着父亲的遗产啊,父亲的江山,对不对!所以子类在对象初始化的时候,要先访问父类的构造方法。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
prtyaaL2
粉丝 1 资源 1949 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  128
统信桌面专业版【全盘安装UOS系统】介绍  123
银河麒麟桌面操作系统安装佳能打印机驱动方法  116
银河麒麟桌面操作系统 V10-SP1用户密码修改  106
麒麟系统连接打印机常见问题及解决方法  10
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
麒麟系统连接打印机常见问题及解决方法 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益210.13元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!