JAVA-初步认识-第八章-继承-子父类中成员变量的特点

一.

谈论完继承之后,我们来看一下,继承这个知识点在代码中的体现。之前书写代码的时候,类和类之间并无关系。现在有了继承之后,类与类之间有了父子关系,我们看一下程序代码中是如何表现的。

子父类出现后,到底给我们的代码带来了哪些特点呢?

(由上面的截图,我想到函数的分类,有哪几种?不同类别之间的区别是什么?)

先从成员变量入手,介绍程序中继承关系。从截图中的例子可以看出,是先有了继承关系,后面才有的相同代码省略(提高了复用性)。

因为继承,直接拿过来用。

我们讨论成员变量,当然着重讲解特殊性。看下面的截图,子父类中有相同的名称的变量,在调用变量时,我们就不知道到底调用的是谁。

DOS的结果显示两个都是5,这里插一句,子要是有,就不找父。包括之前谈论的,局部有,就不找成员。这是从表面现象分析出来的一个道理。从内存空间而言,就是自己本空间有,就不去外面去寻找。

这里产生一个问题,我们就是想要操作父类中的num=4,该怎么做?
既然子已经继承父类,那么子中就有这个num=4。(这里是想要不改变名称,而获得这样的效果么?)

有一种想法,是子类中的num=5覆盖了父类中的num=4。注意:子类中,int num=5; num=9; 才是同一变量的覆盖。但是子类中num和父类中num完全是两个变量,它们都有自己的所属。

那么到底如何操作父类中的num,这时候可以使用一个关键字,

(super不代表父类对象)

相似不是相同,用法想像,代表不一样。

这时有父类和子类,写上this代表的是本类,如果不想代表本类了,就用super代表父类。编译运行,DOS显示没有错。

 为什么父类不代表父类对象,而是代表父类空间?在代码中,只有一个子类对象,并没有父类对象。所以它不能代表父类对象,只能代表父类加载进来的所属空间。子类为什么能够获取父类中的内容呢?那是因为子类持有super引用。

在没有学习子父类之前,弄一个对象去调用一个方法,这方法一进栈,这里面就有了一个叫做this,用this来绑定调用方法的对象。而有了子父类以后,子类凭什么要管父类叫爹,那是因为写了extends的关键字。到时候,没有的情况下,再一次到我们的父类中查找,怎么找这个父类。我们在继承的时候,就有了super,super就指向extends的父类。

当extends时,子类都持有super,这super就立刻指向这个父。用super就可以访问父类中的内容了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/wsw-bk/p/7735560.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值