在之前几节的课程中,我们最常用到的是Student类,在现实生活中,确实学生类的应用范围是很广的:教务管理系统中,所有的对象都是能看做是一种类型。但是在现实生活中,如果将该教务管理系统用于一所大学,那么大学生类UStudent就会区别于之前的学生类Student,但是UStudent类中的方法名称和Student类中的方法名称是一样的。当然,大学生还会有自己特有的方法。这个问题出现了,怎样去解决呢?难道有重新来写一个大学生类,并且重复敲一遍和学生类中一样的代码吗?那样浪费了时间和精力,并且浪费了存储空间,是很不划算的。
于是,子类这个概念就应运而生了。子类继承父类,顾名思义,子类能沿用父类的某些东西,解决各种问题和困扰。继承的关键字是extends,子类继承了其父类的属性和方法。但是,大学生类中的学习study()方法和学生一定是有所区别的——他们拥有更多的个人随意支配时间,能够有更多空间发展个人学习特长爱好等等更加具体的学习方法。这就涉及到了一个概念:重写。重写时,方法的定义和父类的是一样的,但是方法的实现和父类中的不同,更加事无巨细、更符合特定的大学生群体的特征。其次,俗话说得好,”青出于蓝而胜于蓝“,子类能够拥有一些父类没有的方法,比如,上校选课的方法、听各种讲座的方法等等,这是父类中没有的。
当创建对象时,如果是这样创建的:父类名 对象名 = new 子类名(),那么这里的对象究竟是哪种类型的变量呢?子类还是父类?答案是,这里会自动转型,子类对象会自动转换为父类对象。但是,调用方法时,调用的方法是父类中的还是子类中的呢?答案是,如果子类重写了父类的方法,那么调用的就是子类中的方法,否则调用的是子类中的方法。要谨而慎之的是,这里对象能够调用的方法仅限于父类中已经有定义的方法,不能调用子类特别的方法。
好,现在继承机制已经做了一点剖析,继承机制在java中友引发了什么有趣的场景呢?事实上,由于继承和重写,同时Student类型的变量,调用相同的方法,可能出现的结果就是不同的。这就是java里的”多态“。计算机专业学生、心理学专业学生、电子商务专业学生分别学习,由于其继承了学生类但是分别重写了study()方法,因此也会出现不同的结果。
换个说法,继承就像是一个母鸡生了很多蛋一样,孵出来的每个小鸡都是完全不一样的,但是他们拥有相似的要做的事情,比如吃小米、晒太阳、翻泥土————这样一来,世界才是五彩缤纷、多姿多彩的。同样的,类的世界有了继承才更完善。
分享到:
相关推荐
java基础入门的东西,一点简单的实现。 1.商店中,进货(列出能够进货的食品,选择进货的食品,确定进货的数量),进货结束后,列出进货的食品清单 2.商店中,顾客来购买食品(列出能够购买的食品,顾客选择购买的...
而“足球场上的伟大父爱”这一主题,暗示了PPT可能包含关于父亲在孩子成长过程中所扮演的角色,以及他们如何像足球场上的教练一样,引导和支持孩子,培养他们的技能和精神。2012年可能是该模板的创作年份,也可能是...
根据提供的文件信息,以下是从标题、描述、标签和部分内容中提取的Java编程知识点: 1. Java练习题概念:Java是一种广泛使用的面向对象的编程语言,经常用于教授编程基础和进阶概念。练习题是学习编程语言的重要...
本文将深入探讨“Hibernate父亲与孩子”这一主题,即Hibernate中的多对一和一对多关系映射,以及如何利用Hibernate处理面向对象的树型结果。 在数据库设计中,"父亲"和"孩子"的概念通常对应于实体之间的关联关系,...
类中有三个私有字符串类型的变量`father`、`mother`和`child`,分别用于存储父亲、母亲和孩子的名称。 ```java private String father; private String mother; private String child; ``` #### 枚举常量 为了区分...
虽然父类无法直接访问子类特有的方法,但在对象层面,父类对象可以与子类对象交互,就像现实生活中父亲可以指导儿子一样。 扩展知识部分提到了java.lang包,它是JVM自动引入的基础包,包含了Object、Class和...
实现根据输入的父亲和母亲的身高,预测出儿子的身高,并打印出来。计算公式为:儿子身高=(父亲身高+母亲身高) X0.54。
父亲今年30岁,儿子今年6岁,问多少年后父亲的年龄是儿子年龄的2倍。 **解决方案**: 通过循环计算直到满足条件为止。 ```java public class Age { public static void main(String[] args) { int father = 30; ...
在 Java 中,我们可以使用 `java.util.Date` 和 `java.text.SimpleDateFormat` 类来处理日期和时间。我们可以使用 `SimpleDateFormat` 类将日期和时间格式化为字符串。 ```java import java.util.Date; import java...
- 由一位父亲和他的儿子共同编著。 #### Introduction to Java Programming, Comprehensive - **作者**:Y. Daniel Liang - **特点**: - 覆盖了Java编程语言的基础知识点,并且将算法知识融入其中。 - 包含了如...
在Java中,进行文件操作主要依赖于`java.io.File`类。通过该类提供的方法,我们可以实现对文件和目录的基本管理,例如创建、删除、重命名文件或目录等。 **1.1 创建文件和目录** - `mkdir()` 方法用于创建单层目录...
//在所有孩子中取最大高度 subtree = subtree.getNextSibling(); } return height+1;//即可得到当前节点的高度 } //返回当前节点的深度 public int getDepth() { int depth = 0; TreeLinkedList p = ...
//给内部节点中的自己点重新定向自己的父亲 private void pointerRedirect(Node node) { for(int i = 0; i ; i++) { ((Node)node.pointer[i]).parent = node; } } //新建一个新的根节点将新建的节点作为他...
6. **程序设计**:在Python中,可以创建一个Node类来表示树的节点,包含金额属性和子节点列表。然后编写一个函数,接收当前节点作为参数,递归地处理其子节点。这个函数需要更新父节点的金额,将所有子节点的金额加...
在之前的一个《Java学习之SpringBoot整合SSM Demo》分享中说到搭建ZooKeeper和Dubbo分布式框架中遇到了一些技术问题没能成功,只分享了其中的一个中间产物,那就是大家看到的《Java学习之SpringBoot整合SSM Demo》...
按姓名查询成员信息,包括其本人、父亲、孩子的信息。 按出生日期查询成员名单。 输入两人姓名,确定其关系。 5. 成员管理 添加新成员。 删除成员及其后代。 修改成员信息。 6. 数据排序按出生日期对族谱中...
在这个模型中,我们有四个角色:爸爸、妈妈、儿子和女儿,他们各自有不同的任务,需要通过同步来协调操作。 1. **并发执行**:在多道程序系统中,多个进程可以同时存在于内存中,轮流使用CPU进行执行。在这个模型中...
//设置当前节点的左孩子(注意:this.lChild和c.parent都不一定为空) public void setLChild(BinTreePosition c); //判断是否为右孩子(为使代码描述简洁) public boolean isRChild(); //判断是否有右孩子(为...
//至此,v或者没有父亲,或者是父亲的右孩子 return v.getParent(); } //按照中序遍历的次序,找到当前节点的直接后继 public BinTreePosition getSucc() { //若右子树非空,则其中的最小者即为当前节点的...
java设计模式【之】静态代理【源码】【场景:帮爸爸买菜】.rar * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * ...