关于继承,我想大多数人都知道,它是面向对象语言中的三大特性之一,所以在这里,关于继承的概念等我就不做详细介绍了,我主要就讲一下大家对他的认识中一些比较容易犯的错误吧。
错误认识1、继承,是将父类中所有的属性和方法都继承下来。
其实这个认识是错误的,继承,并不是将父类中所有的属性和方法都继承下来,而是只继承父类中公有的属性和方法,对于私有的(即是private)属性,我们可以通过对应的getter和setter方法来对其进行修改。对于私有的方法,我们可以通过其它公共的方法来对其进行调用。
下面是一个例子,大家可以运行来学习验证一下。
Person.java
package com.extendsStudy.model;
public class Person {
private String private_name; //私有的属性
public int public_age; //公共属性
/**
* 私有属性private_name的getter方法
* @return 当前类中private_name的值
*/
public String getPrivate_name() {
System.out.println("调用了父类的getPrivate_name方法: " + this.private_name);
return private_name;
}
/**
* 私有属性private_name的setter方法
* @param private_name 记录中将要赋值给类中private_那么属性的变量
*/
public void setPrivate_name(String private_name) {
this.private_name = private_name;
}
}
Boy.java
package com.extendsStudy.model;
/**
* 继承了Person类的子类Boy
*/
public class Boy extends Person{}
ExtendsTest.java
package com.extendsStudy.test;
import com.extendsStudy.model.Boy;
public class ExtendsTest {
public static void main(String[] args) {
Boy boy = new Boy(); //创建一个boy对象
boy.public_age = 11; //变量必须先声明再赋值最后才能使用,因为在model类中没有赋值,所以在这里要记得赋值
System.out.println(boy.public_age); //输出public_age属性的值
boy.setPrivate_name("haha"); //调用private_name属性的setter方法对父类中的private_name属性进行复制
System.out.println(boy.getPrivate_name()); //调用private_name属性的getter方法获取父类中的private_name属性的值
}
}
分享到:
相关推荐
10.1.7 Java中的单继承 248 10.1.8 Java中的类图 249 10.1.9 万类之祖——Object类 250 10.2 子类对象?父类对象? 251 10.2.1 父随子行 251 10.2.2 当构造方法遇到继承 254 10.2.3 记得给类一个无参数的构造...
对于java流的认识 28.简单描述一下awt与swing区别。 29.简述java编程中事件处理模式。 30.你编写过applet吗?applet的安全权限如何?试列举java application或者applet中与servlet/jsp通信可以采用的方式。 31...
10.1.7 Java中的单继承 248 10.1.8 Java中的类图 249 10.1.9 万类之祖——Object类 250 10.2 子类对象?父类对象? 251 10.2.1 父随子行 251 10.2.2 当构造方法遇到继承 254 10.2.3 记得给类一个无参数的构造...
5.5.2 处理本地方法引起的java错误 5.5.3 线程与本地方法 5.6 jni数学计算与性能优化 5.7 处理好jni中的中文问题 小结 第6章 类与接口 6.1 类的构造器 6.1.1 构造器编写规则 6.2 类的继承规则 6.2.1 单线继承规则 ...
1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 Java...
在 java 语言中,Java 程序的基本单位是类,也就是说:一个 Java 程序是由多个类组成 的。定义一个类与定义一个数据类型是有区别的。在程序设计语言中,把定义数据类型的能 力作为一种很重要的能力来对待。在面向...
第3版 机械工业出版社 教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 高 中 控制结构 高 高 易 数组 高 高 中 方法 很高 高 中 封装 很高 很高 难...
2:继承:子类继承父类,子类可以拥有父类中已定义的方法,并且子类可以修改父类中的方法使其更适合特殊需求。 3:多台:不同对象对统一消息作出不同响应称之为多态 4:抽象:忽略与当前主题无关的那些方面,将...
本书为中南大学精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java开发环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领...
所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实 世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表 示对象的方法(其作用是处理数据或同外界交互)。...
使用类再生的两个方式:组合(new)和继承(extends),这个已经在 thinking in java中提到过. 设计模式之 Proxy(代理) 以 Jive 为例,剖析代理模式在用户级别授权机制上的应用 设计模式之 Facade(门面?) 可扩展的使用...
1. C# 中(不同于 C++)的变量,总是需要你在访问它们前先进行初始化,否则你将遇到编译时错误。故而,不可能访问未初始化的变量。 2. 你不能在 C# 中访问一个“挂起”指针。 3. 超出数组边界的表达式索引值同样不可...
14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...
以至于正当Microsoft尽力在Visual J++基础上拓展Java功能,并使之与Windows操作系统紧密结合在一起的时候,Sun公司对Microsoft提出了法律诉讼,控告Microsoft违反了许可证协议中的条款,最终的结果是Microsoft公司...
课时13 认识Prefab,完善场景中的食物 课时14 认识触发器 课时15 添加捡起食物功能 课时16 日志输出和错误调试 unity经典入门课程之C#基础实例讲解(打砖块实例) 课时1 开发工具Visual Studio Tools For Unity...
Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为...
我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、数据库技术等国家IT认证。...
2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) Server Side ViewState 在服务器端存贮ViewState (ASP.NET 2.0) VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step ...
目的:学生电子作业提交与分析系统的开发是为了解决传统的使用FTP服务器上传作业的作业管理方式下无法防止学生乱上传作业、上传作业到错误文件夹位置中,未能对学生上传作业的大小、类型、上传时间等进行限制,作业...