java中私有属性能不能被继承?

以前的课堂中,老师讲继承的时候说过:子类可以继承父类中的属性和方法。可是当我们写代码的时候却能出现一些不一样的情况。

其原因在什么地方?之后通过代码的验证发现出现在了private的访问控制权限上面,也就只有private的访问控制权限能出现问题。

那为什么private能出现矛盾呢?我们来看:private:私有的,只能在自己本类中使用。而继承是子类继承了父类中的属性和方法。

我们在这两个解释中发现了问题:私有属性能不能被继承的?
针对此问题,我们先来看代码:

class Person {private String name = "wanghan";private void print() {System.out.println("执行的是父类中的方法!");}public void fun(){this.print();System.out.println(this.name);
}
class Student extends Person {void print() {System.out.println("执行的是子类中的方法!");}
}
public class Main {public static void main(String[] args) {new Student().fun();}
}

执行结果为:

    "C:\Program Files\Java\jdk1.8.0_172\bin\java.exe"...执行的是父类中的方法!wanghanProcess finished with exit code 0

私有属性不能继承,但是可以通过子类继承父类的方法来访问父类的私有属性。

在上述的代码中,分别有一个私有的属性和方法。通过父类中的方法对私有属性进行访问,同理,私有方法我们也是通过父类的方法进行了访问。而在子类中也创建了一个与父类私有方法名字相同,且访问控制权限进行了扩大的一个方法,按理来说应该是子类中的方法对父类中的私有方法进行了覆写,可事实是执行了父类中的私有方法。也就是说子类并没有覆写父类中的私有方法,这是在子类中创建了一个新的方法。所以,父类的访问控制权限是 private 时,子类的访问控制权限是protected或者时public时。此时这也不是方法的覆写。

也就是说用private声明的方法不能被子类覆写,但可以通过父类的方法调用

java中私有属性能不能被继承?相关推荐

  1. python私有属性怎么定义_Python中私有属性的定义方式

    Python没有类似于Java的private关键字, 但也可以为类定义私有属性. 只需将属性命名变为以__开头, 例如 __field. 示例代码: class Vector2D(object): ...

  2. javaScript中私有属性和方法

    javaScript并没有特殊的语法来表示私有.保护.或公共属性和方法,在这一点上与 java或其他语言是不同的,JavaScript中所有对象的成员是公用的: var myobj={ mypop:1 ...

  3. 在java中私有方法能被重载吗_我可以在Java中重载私有方法吗?

    重载是实现多态的一种机制,其中,一个类包含两个具有相同名称和不同参数的方法. 每当您调用此方法时,方法主体都将基于参数与方法调用绑定. 重载私有方法 是的,我们可以在Java中重载私有方法,但是您可以 ...

  4. 防止iOS中私有属性在block中的循环引用

    想看答案可以直接瞅瞅底下代码. 对于一般的@property修饰的属性我们可以使用__weak转换一下self来修饰 __weak typeof(self) weakSelf = self;//然后把 ...

  5. JAVA中定义属性或方法的数量上限

    这个问题很少有人遇到,但是java中定义的属性或者方法是有上限的,可以粗略的计算为65535,也就是两字节无符号数的最大值:我在这里说的上限不是运行中内存不够之类发生的上限,而是无法通过编译为clas ...

  6. python的实例类方法、修饰器类方法、修饰器保护方法、修饰器静态方法中私有属性的区别和自定义property的读写方法

    class Cla:__count=0def __init__(self,v):self.__value=vCla.__count+=1def show(self):print('普通实例方法访问私有 ...

  7. Java中读取属性文件以及做资源国际化

    在src下的文件,没写包名 import java.text.MessageFormat; import java.util.Locale; import java.util.ResourceBund ...

  8. Java中对象属性的初始化顺序

    1-对象属性的初始化方式有三种 2-对象属性初始化的顺序 3-类属性初始化方法有两种 4-类属性的访问 在Java中用没有没关键字 static修饰的属性叫对象属性,否则就叫类属性. 1-对象属性的初 ...

  9. java中私有变量和方法_Java 私有变量和私有方法

    作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com) 内容索引 访问私有变量 访问私有方法 在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是 Java ...

最新文章

  1. C语言 数据类型(就做个笔记总结)
  2. 沙滩鞋除臭法--针对常见户外沙滩鞋来讲
  3. 超全的 Linux Shell 文本处理工具集锦,快收藏
  4. 自己写的一个抢票加速的Python小程序源码分享-----纯属娱乐
  5. 使用树莓派搭建WordPress个人博客
  6. KMP算法经典题目--实现 strStr()
  7. 通向架构师的道路(第十四天)Axis2 Web Service安全之rampart
  8. MFC 驱动加载工具(安装/运行/停止/卸载)
  9. RetinaFace+ArcFace人脸识别测试
  10. java工作流引擎:jbpm和activiti对比分析
  11. 谷歌中国正式宣布李开复辞去总裁一职
  12. 《论语》全译——孔子生平
  13. java候选码计算的替换法_候选码求解方法
  14. 后缀名htm与html的区别
  15. 360极速浏览器显示密码
  16. 万圣节 数据_万圣节最可怕的12种开发商恐惧
  17. 数据结构基本概念和术语(数据、数据元素,数据对象,数据项)及举例描述
  18. C#实现繁体简体转换方法总结|ASP.NET.分享
  19. MVC实体框架EF实现分页
  20. 【解决】Merge branch 'master' of https://gitee.com/

热门文章

  1. 【英语阅读】经济学人 | 零售商纷纷撤离商业街之际,宜家为何反其道而行之?
  2. UVA Magical GCD
  3. APP-PAY-06153
  4. 数字金额转大写金额 工具类
  5. H5页面获取屏幕宽高
  6. 【cvpr2022-论文笔记】《Multi-class Token Transformer for Weakly Supervised Semantic Segmentation》
  7. [Flex] 组件Tree系列 —— 支持CheckBox组件
  8. 修改JDK安装路径的作用
  9. 白话蓝牙技术之BREDR/BLE
  10. 【2437. 有效时间的数目】