`

Java类的继承概论

    博客分类:
  • Java
阅读更多
Java中的继承与生活中的很相似,但是又有他们之间的不同。
Java中继承代表的是一个新的类(子类)可以使用当前类(父类)里面的部分方法和属性,而在这里面又有一些需要我们注意的地方:
1.子类和父类在同意包下的时候,可继承的方法属性为public and protected
2.而他们不在统一包中时,只能继承public的
而且需要特别说明的是,构造函数在以上两种情况下是都不可以继承的。
继承其实类似于我们生活中的遗传关系,子代可以继承父辈的财产(protected)和物品(public),当然这是理想状况(同一包);
当子代和父辈不是直接血缘关系(继父母)时(不在同一包),那么只能继承物品(public),而无法继承(部分)财产(protected)(这里当然不绝对)。
这里的物品其实就相当于部分财产~

父辈有父辈的习惯,子代有子代的习惯,有的是耳濡目染继承下来的,那么就是父辈和子代所共有的,有的是子代没有学的,子代在做这些事情的时候有自己的处理方式,那么做同一件事的方法两代人直接按就会产生不同--
这在我们Java中就是所谓的方法的重写。
重写时也有需要我们注意的事项:
方法之间的名字,参数个数类型以及返回值类型都必须完全相同!
允许不同的地方就是访问修饰符,还有就是子类方法的具体内容。
对于方法修饰符,范围子类必须大于或等于父类的,即:
public -->  protected   -->  private.

自动转型也是在继承的基础上所产生的,就是说子类可以自动转换为父类的成员
对于自动转型,我们可以这样理解:
一个大学老师,可以教大学生,也可以教初中生,高中生,小学生
那么。对于这个教学的方法我们就可以只写一次。然后在使用时进行相应的自动转换一达到教学各种不同阶层学生的目地。
对于我们来说,使用自动转型,那么就只能调用父类中已经定义过的方法。
对于这个转型,我们有2种方法:
          一:
父类名  父类对象名  =  new 子类构造函数();

二:
父类名  父类对象名  =  new 子类构造函数();
&&
子类名   子类对象名  =  new 子类构造函数();

public 返回值类型   方法名(父类类名   父类对象名){
父类对象名.方法名();
}

方法名(父类对象名);
方法名(子类对象名);
但是,自动转型也是有明显缺点的:
如果使用自动转型,则无法调用子类的独有方法。
因为计算机比较笨,它只能按照固定的已经设定好的方式去执行,Java在编译的时候,是根据对象名的类型去编译程序,这个时候在子类中,是找不到
相应的方法的,所以编译出错了。

现实生活中,我们对于一件事会有很多不同的方法去实现。
比如:做菜我们可以选择煎炒烹炸,上班我们可以选择公交地铁,就连睡觉我们也可以选择侧卧仰卧,这也就是我们所说的多态。
Java中,多态是由方法重载,继承,方法重写,自动转型等引起的一个综合技术点。
也就是说,我们可以通过由继承,重载,自动转型实现各种方法的目的,也就是实现多态。

由继承和继承引申出的东西我们就介绍完啦!
其实,继承的作用是非常大的,通过这些继承的关系,我们可以较少编成的工作量,提高代码的利用率,程序的扩展性能,更减少了形同代码串的出现,降低了这方面的冗余,从而在很大程度上提升我们的编程效率。
0
3
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java习题(含答案).doc

    面向对象程序设计是Java的核心特性,包括类、对象、封装、继承和多态性。Java小应用程序,如Applets,可以在网页中嵌入,增强互动性。异常处理是Java中处理程序运行时错误的方式,通过try-catch-finally结构来捕获和...

    java学习 1第一章 概论.ppt

    实验部分则针对各章节内容设计,涵盖了Java开发环境的配置、基本程序设计、类与对象的操作、继承与多态的实践、数组和字符串的使用、递归、排序与查找算法、堆栈、队列与链表、图形用户界面编程、异常处理、线程、...

    第2章 Java程序设计语言概论.ppt

    Java程序设计语言是互联网开发领域中的重要工具,其发展历程始于1991年Sun公司的Green工程,旨在为消费类电子产品创建一种控制语言,最初命名为Oak。随着互联网的迅速发展,1994年,SUN推出了HotJava浏览器,进一步...

    《JAVA程序设计》教学大纲.docx

    这门课程涵盖了从基础语法到高级技术的广泛内容,包括Java语言概论、基本语法、类与对象、高级特性,以及Java在用户界面、网络编程和数据库交互等方面的应用。通过学习,学生将为进行基本程序开发和进一步学习J2EE...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    chapter1 java平台概论 1 1.1 java不只是语言 2 1.1.1 前世今生 2 1.1.2 三大平台 5 1.1.3 jcp与jsr 6 1.1.4 建议的学习路径 7 1.2 jvm/jre/jdk 11 1.2.1 什么是jvm 11 1.2.2 区分jre与jdk 14 ...

    新java课件ppt格式下载

    这部分内容会讲解类、对象、封装、继承、多态等概念,这些都是理解Java程序设计的关键。 6图形用户界面.ppt将涉及如何使用Java实现图形用户界面(GUI)编程。Java提供了Swing和JavaFX等库来创建美观且功能丰富的...

    java初学者学习的程序

    3. **面向对象程序设计**:第三编面向对象程序设计基础将深入讲解类、对象、封装、继承、多态等核心概念。这是Java区别于许多其他编程语言的关键特性,也是理解和编写复杂程序的基础。 4. **多线程**:第五编多线程...

    《JAVA程序设计与开发》课程教学大纲.docx

    * Java语言概论 * Java语言特征 * Java 7体系结构、编译环境和工具 * Java程序分类和编程规范 * 标识符和数据类型 * 运算符 * 流程控制 * 数组与字符串 * Java类和对象 * 对象与类的成员 * 构造函数 * 方法重载与...

    JAVA程序设计习题库及答案(免费下载)

    1. **Java语言概论**: - **鲁棒性**:Java的鲁棒性体现在它能检查并处理程序运行时的错误,如类型检查、内存管理等,确保程序稳定运行。 - **执行模式**:Java采用半编译和半解释型执行模式,源代码先编译成字节...

    Java_course.zip_java课程ppt

    这些概念是Java的灵魂,通过实例解释了如何创建类、对象,以及类之间的关系,是学习Java的基石。 第5讲“统一建模语言UML”讲述了软件设计中的一个重要工具——UML,它用于可视化和规划软件系统。UML的类图、用例图...

    java学习课件

    面向对象编程(OOP)的概念,如类、对象、封装、继承和多态,将在这一章得到详细介绍。 第五部分,"第5章 面向对象特性",将进一步深入讨论OOP的特性,如抽象、接口、构造器、访问修饰符等,帮助学习者更深入地理解...

    Java技术参考手册,自学手册,开发人员实用手册

    Java平台概论: Java平台分为三个主要部分:Java虚拟机(JVM)、Java类库和Java语言规范。JVM是执行Java程序的关键,它负责解释和执行字节码。Java类库提供了丰富的API,使得开发者能够方便地进行系统级任务处理,如...

    JAVA程序设计习题库及答案(下载).pdf

    ### 第一章 Java语言概论 #### 一、选择题解析 1. **鲁棒性特点**: - A. Java能够检查程序在编译和运行时的错误,确保程序的稳定性和可靠性。 - B. Java通过运行虚拟机实现了跨平台的能力,这是其鲁棒性的一个...

    cursomc:Java库概论模型建模概念UML

    Java库概论模型建模概念UML是一种在软件开发中广泛应用的方法,用于设计和规划复杂的系统结构。在Java编程环境中,库是预先编写的一组功能集合,开发者可以调用这些功能来实现特定任务,提高代码复用性和效率。本...

    CoreJava

    继承允许一个类(子类)继承另一个类(父类)的特性和行为。子类可以覆盖或扩展父类的行为。 #### 多态 多态是指一个接口可以表示多种类型的能力。Java中的多态主要通过方法重写和方法重载实现。 #### 方法重写与...

    java培训课程体系

    - **线程的创建:** 掌握通过继承Thread类和实现Runnable接口两种方式创建线程。 - **线程的生命周期:** 理解线程的不同状态及其转换。 - **线程的同步:** 学习synchronized关键字和ReentrantLock等同步机制。 ##...

    山东科技大学软件工程概论期末考试复习资料

    复习编程基础,包括主流编程语言(如Java、C++或Python),以及良好的编程实践,如代码规范、异常处理和调试技巧。理解面向对象编程的关键特性:封装、继承和多态。 5. **测试** 测试是确保软件质量的重要环节。...

    Java+access奖学金评定系统

    - **面向对象**:Java支持封装、继承和多态三大面向对象特性,这使得代码更加模块化,易于维护和扩展。 - **封装**:通过类将数据和方法封装在一起,隐藏内部实现细节,仅暴露必要的接口。 - **继承**:允许子类...

Global site tag (gtag.js) - Google Analytics