子类继承父类的成员范围与权限修饰符没鸡毛关系

刚刚突然脑子有点短路,一下子记不起来子类继承父类的成员范围了,然后就百度了一下。。。。。。
差点没把我嘴气歪,竟然有博文将子类继承的父类的成员范围和修饰符的修饰访问权限范围挂钩。。。。。。
简直是扯淡。在这里插入图片描述
什么是权限修饰符?
权限修饰符是用来控制对类和类的成员变量以及成员方法的访问范围的。
和他妈的继承范围有什么关系?

自己没学好还出来祸害,我看见他的博文访问量还挺高的。在这里我虽然很不爽,但是还是不贴出来是谁写的了,希望看到这篇博文朋友能够多注意一下。
下面我详细说明一下,子类继承父类的权限范围。
这里先说清楚,**子类能继承父类的除了构造方法以外的所有成员!!!**下面我逐一解释关于权限访问修饰符、构造方法和final关键字以及静态的成员和继承之间的关系。

一、关于访问权限修饰和继承的关系:没鸡毛关系,可能大家对于同包子类无法显示调用private修饰的父类成员变量和方法感到疑惑,认为是private限制了子类继承父类的成员的范围,其实不是的。子类依然继承了父类被private修饰的成员,只不过不能显式调用
如果你不相信,可以在父类中写一个private修饰的成员变量,然后在父类的一个public修饰的方法中调用这个成员变量进行输出。
在子类中调用这个方法,如果在控制台能输出这个私有的成员变量,不是继承是什么?

二、关于构造方法不能被继承的原因分析
第一、我们根本不能重写父类的构造方法,因为父类的构造方法没有返回值,也没有void。。。。。。
我们连方法头都写不出一样的。
你在子类中写出一个例如public void 父类名(形参){方法体}的方法,这个方法和父类构造方法的关系大概就是巴基斯坦和卡巴斯基的关系。
有基巴关系。
第二、就算我们能够重写父类的构造方法,那么如果我们要声明一个父类的对象,或者实例化一个子类对象时,都要调用父类的构造方法,那么我们调用的是父类中的构造方法,还是我们在子类中重写的父类构造方法?如果是父类中的构造方法,那么我们在子类的方法中重写的父类构造方法有鸡毛用?如果是子类重写的父类的构造方法,那么就是相当于向上造型,那么你每次调用父类方法的时候,只要子类重写过了,你运行的就是子类重写的代码。。。。。。

三、关于final关键字修饰的父类成员,对于final成员变量没啥好说的,人家只不过是不能被修改值。对于final方法,大家存在一个错误的认识,就是认为不能被重写的就相当于不能被继承的。。。。。。
这是错误,关于final方法,你从任何一本书上都找不到关于final方法不能被继承的解释。
如果还存在关于final方法能不能被继承的疑虑,你可以在父类中写一个final方法,在子类中尝试调用,看看可不可以。

四、关于静态的成员的话,不用讲太多,Java中static方法不能被覆盖,即使在子类中已经写了个方法头一模一样的静态方法。也不是被重写,因为静态方法是在编译时期就已经静态绑定了,所以不能被重写,即使使用向上造型将父类引用指向子类对象,然后使用这个引用调用静态方法也是调用的父类的静态方法。

下面贴我的测试代码,我直接截的图片,很简单,自己写就行,不展示图片显示不出我的骚。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值