关于继承,我想大多数人都知道,它是面向对象语言中的三大特性之一,所以在这里,关于继承的概念等我就不做详细介绍了,我主要就讲一下大家对他的认识中一些比较容易犯的错误吧。

  错误认识1、继承,是将父类中所有的属性和方法都继承下来。

其实这个认识是错误的,继承,并不是将父类中所有的属性和方法都继承下来,而是只继承父类中公有的属性和方法,对于私有的(即是private)属性,我们可以通过对应的getter和setter方法来对其进行修改。对于私有的方法,我们可以通过其它公共的方法来对其进行调用。

下面是一个例子,大家可以运行来学习验证一下。

Person.java

  1. package com.extendsStudy.model;
  2. public class Person {
  3. private String private_name;    //私有的属性
  4. public int public_age;      //公共属性
  5. /**
  6. * 私有属性private_name的getter方法
  7. * @return 当前类中private_name的值
  8. */
  9. public String getPrivate_name() {
  10. System.out.println("调用了父类的getPrivate_name方法: " + this.private_name);
  11. return private_name;
  12. }
  13. /**
  14. * 私有属性private_name的setter方法
  15. * @param private_name  记录中将要赋值给类中private_那么属性的变量
  16. */
  17. public void setPrivate_name(String private_name) {
  18. this.private_name = private_name;
  19. }
  20. }

Boy.java

  1. package com.extendsStudy.model;
  2. /**
  3. * 继承了Person类的子类Boy
  4. */
  5. public class Boy extends Person{}

下面是运行测试类:

ExtendsTest.java

  1. package com.extendsStudy.test;
  2. import com.extendsStudy.model.Boy;
  3. public class ExtendsTest {
  4. public static void main(String[] args) {
  5. Boy boy = new Boy();    //创建一个boy对象
  6. boy.public_age = 11;    //变量必须先声明再赋值最后才能使用,因为在model类中没有赋值,所以在这里要记得赋值
  7. System.out.println(boy.public_age);     //输出public_age属性的值
  8. boy.setPrivate_name("haha");    //调用private_name属性的setter方法对父类中的private_name属性进行复制
  9. System.out.println(boy.getPrivate_name());      //调用private_name属性的getter方法获取父类中的private_name属性的值
  10. }
  11. }

转载于:https://blog.51cto.com/xiaoxuetu/917524

java继承中的一些该注意的问题相关推荐

  1. java 继承 子类 实例化_关于Java继承中父类和子类构造函数的问题

    Java子类在实例化时默认调用的是父类的无参构造函数,不论实例化时调用的是子类的有参还是无参构造函数, 1.当父类没有显式定义构造方法时, 编辑器会默认为此类添加一个隐式无参构造函数.此时子类可以有自 ...

  2. 转转转!java继承中的this和super

    学习java时看了不少尚学堂马士兵的视频,还是挺喜欢马士兵的讲课步骤的,二话不说,先做实例,看到的结果才是最实际的,理论神马的全是浮云.只有在实际操作过程中体会理论,在实际操作过程中升华理论才是最关键 ...

  3. Java继承中的子类父类构造方法的调用

    Java的继承中,关于子类和父类构造方法的使用. 子类在初始化时,一定会调用父类的构造方法. 原因如下: 在子类继承父类时,子类会继承父类所有的公共成员变量,公共方法,这些方法在子类中不再重复声明. ...

  4. Java继承中成员变量和成员函数的覆盖

    2019独角兽企业重金招聘Python工程师标准>>> 关于继承中变量和方法的覆盖: 1, 与基类中同名的变量,会被派生类所覆盖(同时存在但是有独立的值),直接取值将是派生类的值,但 ...

  5. java可以继承私有的,在java继承中,私有属性能否被继承

    其实在继承中,子类可以继承父类的私有属性的内容空间,但是不能继承父类私有属性的访问权限,下面看代码 父类Animal public class Animal { private String name ...

  6. java继承的关键字_超级关键字在Java继承中的作用

    可以使用Java中的super关键字来引用父类对象.它通常在继承的上下文中使用.给出了一个用Java演示super关键字的程序,如下所示: 示例class A { int a; A(int x) { ...

  7. java继承中的 equals + hashCode+toString

    [0]README 0.1)本文转自 core java volume 1, 旨在理清 equals + hashCode方法: 0.2) 特别说明: 在java中, 只有基本类型不是对象, 例如,数 ...

  8. java的子类调用构造器的顺序_深入剖析Java继承中的初始化与构造器调用关系

    声明:本文为牛旦教育原创,所有权保留,转载请注明来源. 一个对象有两件事:状态和行为. 类中的实例变量表示其对象的状态. 实例方法表示其对象的行为. 类的每个对象都保持自己的状态. 创建类的对象时,将 ...

  9. Java 继承中的属性隐藏与方法重写

    一.变量隐藏--变量不具有多态性 Java 中的变量不遵循多态性,所以重写仅适用于方法,而不适用于变量. 并且,当子类中的实例变量与父类中的实例变量具有相同的名称时,则从引用类型中选择该实例变量. 在 ...

最新文章

  1. node_modules中包不完整的解决方法
  2. 人间真实!如果我有这套装备,我也能码到凌晨...... | 每日趣闻
  3. swagger2注解说明文档
  4. 大话oraclerac集群、高可用性、备份与恢复_Oracle RAC结构
  5. 首次超过苹果!华为高端智能手机Q1国内市场出货量占48%
  6. pythonstdin和stdout_如何使用os.execv()在python中继承stdin和stdout
  7. iPhone在scrollview中双击定点放大的代码
  8. 当Tomcat配置安装都成功端口号也没问题时网页输入http://localhost:8080/打不开如何解决
  9. PHP 危矣?Zend Engine 团队宣布脱离 Rogue Wave
  10. DBM经历(六)UAT了
  11. 《Kafka权威指南》读书笔记4 Kafka消费者
  12. node.js 快速入门
  13. 云科技网络验证源码_黑科技网络验证软件 1.52.0.0免费版
  14. Unity实现音频播放器[QQ音乐,网易云等效果]
  15. Grunt 的简单使用
  16. 记录::Opencv调用tensorflow2.x-Keras模型
  17. 报表打印(rdlc)
  18. Excel分类汇总2个维度的结果,1个计数1个求和
  19. 共用体的使用_C++
  20. Kubernetes 在网易云中的落地优化实践

热门文章

  1. 基于OpenCasCade的程序发布问题
  2. 根据经纬度获取用户当前位置信息
  3. Hadoop生态圈-hive五种数据格式比较
  4. 简单几行代码,写一个百度广告屏蔽插件,爽到爆
  5. MySQL5.5加主键锁读问题
  6. HANA 数据库备份hang住的解决办法
  7. Linux02-帮助手册
  8. android设备未指定怎么办,APKpath未指定为模块“示例 – 示例”
  9. 快速了解Kubernetes微服务中的通信
  10. Hadoop集群的基本操作(三:HBase的基本操作)