关于java语法 super

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:26:01
可以使用super访问父类被子类隐藏的变量或覆盖的方法,super.fun

如果我想访问父类的父类的父类被子类隐藏的变量或覆盖的方法
该怎么办?
好像不能super.super.fun吧

我以前也想过这个问题,孙子类去调用爷爷类的方法,属性怎么办。

呵呵。

其实完全没有必要去调用爷爷类的东西嘛。 爷爷类传到父亲类是一次进化,

你如果要从孙子一直调用到爷爷类,那说明你的那次进化就有问题,我们设计类之间的结构时就应该考虑到这样的问题。也就是说你预计到孙子有可能要用到爷爷的东西,那就应该到父亲类去设计一个方法返回爷爷的东西,在让孙子去调用爸爸的方法得到爷爷的东西。

反正你不晕我都晕了。呵呵

之所以出现继承和override,就是为了隐藏一些细节。
子类无须知道父类的历史情况,包括父类的private方法和属性。

所以,父类的父类是不能访问到的。

在最底层的子类里用super即可
中间层的子类不用写super
这样子类也可以访问父类的方法
实在不行你就有“对象名.对象名.对象名.方法名”

在最底层的子类里用super即可
中间层的子类不用写super
这样子类也可以访问父类的方法