`
吴亚辉
  • 浏览: 11606 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

总结java继承中应注意的问题

    博客分类:
  • Java
阅读更多
刚刚学习了继承,记录下我觉得继承中我们应该注意的问题.
什么继承是使用extends来实现的,这种问题记录下来是不是有点降低哥的IQ呢?哈哈,所以这些基础语法就不记录咯.下面开始吧:
1.在学习java中,我们应该要知道所有类的超类都是object类,这样说的意思就是说,所有的类都包含了object这个类的成员,所以

我们在编码的时候要恰当的利用这个类中的成员.大家有时间还是多去看看帮助文档,了解下这个object类.我简单的说说这个类

吧.
在这个类中有一个无参的构造方法,大家是不是在想,既然所有类是继承object类,而我们知道在继承的概念里,是不能继承父类的

构造方法的,为什么还要提供这样一个构造方法呢?这里就引发出了另一个问题了,在继承当中虽然不能继承父类的构造方法,但是

我们创建子类对象,在调用子类构造方法的时候,这个时候是先去调用父类的构造方法,大家想想,这个时候如果父类没有构造方法

,那程序会出现什么样的错误?这里编译使不能通过的,这就是object里的无参构造方法存在的意义.
在object里面有一个很常用的方法toString();这个方法默认是返回对象的 包名.类名+@+hashCode码,具体实现是:getClass

().getName() + '@' + Integer.toHexString(hashCode()) ; 这个实现对我们来说是没用意义的,所以一般我们在使用的时候是

重写这个方法.
在object里面还有一个常用的方法equals();这个方法用于比较指示某个其他对象是否与此对象“相等”.
另一个就是getClass();这个用于返回一个对象运行时的类的模版,也就是所谓的反射机制.
其他的方法,需要做了解,至少在需要的时候能查到.

2.继承中需要注意的第二点:
如果B继承于A,且C继承于B,且满足B IS-A A,C IS-A B的关系,那么这时候的C也具有了A当中的成员,这里因该考虑的问题是

private修饰的是不能被继承的.

3.在继承的时候我们应该尽量少使用protected(受保护的),虽然protected最大权限是父类和子类的关系可以访问,但是同一个包

中还是可以访问的,为了尽量完善程序的封装性,所以尽量少使用.

4.继承:使得相同的代码可以在不同类型之间得到复用.

多态:使得不同的代码可以以一种相同的方式得到调用.

继承可以做为复用的手段,但这不是继承的最大意义,继承的最大意义在于封装变化的代码,将变化的代码和不变的代码进行剥

离,使得代码的维护性,扩展性,重用性得增强.

继承分为extends和implements.

在子类重写方法时,要注意到这有可能是在修改父类,违背LSP.  子类应该进可能去实现一个抽象方法,而不是去重写一个具体

方法.

1
0
分享到:
评论

相关推荐

    10万字面试总结Java.pdf

    这份"10万字面试总结Java.pdf"涵盖了Java基础知识、JVM、Spring框架、并发编程、Linux、Dubbo、Mybatis、Springcloud、Spring Boot、消息队列和Zookeeper等多个核心主题,旨在帮助Java开发者全面准备面试。...

    linux下java继承开发环境配置说明.pdf

    - **标题**: "Linux下java继承开发环境配置说明.pdf" - **描述**: "linux下java继承开发环境配置,喜欢的人赶快下吧。很有用哦!学习linux很好的。" **解读**: - 本文档主要介绍如何在Linux环境下配置Java集成开发...

    10万字总结java面试题和答案(1).pdf

    下面是Java面试题和答案中的一些重要知识点总结: 一、Java语言特点 * 简单易学:Java语言的语法简单易学,易于初学者学习和掌握。 * 面向对象:Java语言是面向对象的编程语言,具有封装、继承、多态的特性,易于...

    JAVA继承_接口_抽象类等练习.doc

    **概念:** 在Java中定义方法时需要注意返回类型、方法名以及参数列表。方法的返回类型必须与方法实际返回的数据类型匹配。 **选择题示例:** 第5题中,正确答案是D选项:“int x(int a, int b) { return a - b; }”...

    java oop理论(继承)

    在Java面向对象编程(OOP)中,**继承**(Inheritance)是一种强大的机制,它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。这种机制可以有效地复用代码,并且支持类之间的层次结构。 #### 二、...

    java基础知识总结

    5. 编写Java程序时,需要注意大小写敏感、文件命名规则以及类的结构。每个公共类的文件名必须与类名一致,扩展名为.java。类由修饰符、类名、父类(如果有的话)和接口(如果实现的)组成,其中修饰符可以包括public...

    java视频学习总结

    ### Java视频学习总结知识点 #### 抽象方法与抽象类 在Java中,抽象方法是一种没有具体实现(方法体)的方法,它仅提供方法签名,而具体的实现留给子类完成。一个类如果包含一个或多个抽象方法,那么这个类必须被...

    java 继承关系的加载顺序

    在Java编程语言中,继承是面向对象特性的重要组成部分,它允许一个类(子类)从另一个类(父类)继承属性和方法。了解Java中继承关系的加载顺序对于理解和优化程序性能至关重要。以下是对这个主题的详细阐述: 1. ...

    Java面向对象总结

    ### Java面向对象总结 #### 一、继承 ...通过上述总结,我们可以更好地理解Java中的面向对象特性,特别是继承、多态以及`final`和`static`等修饰符的应用,这对于编写高质量、可维护的Java代码至关重要。

    Java程序基础学习注意事项总结

    在学习过程中,注意以下几个关键点,能够帮助你更好地掌握Java语言。 首先,安装Java Development Kit (JDK)是开始Java编程的第一步。确保正确安装后,配置环境变量是至关重要的。在Windows系统中,你需要设置`JAVA...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    2021-2022年收藏的精品资料JAVA年度工作总结.doc

    在这一年中,作者深入学习了JAVA的各项核心概念和技术,包括但不限于类、对象、封装、继承、多态等面向对象编程的基本原则。在时间管理上,作者强调了高效利用每5小时的时间段进行学习和实践的重要性,通过集中注意...

    北大青鸟 accp 5.0 S1 JAVA总结 PPT

    【北大青鸟ACCP 5.0 S1 Java总结PPT】主要涵盖了...以上内容仅是Java基础知识的冰山一角,实际编程中还需要深入学习类、对象、继承、封装、多态等高级概念。然而,理解和掌握这些基础将为后续的学习打下坚实的基础。

    java基础知识总结(经典)

    Java 基础知识总结是 Java 程序员不可或缺的一部分,本总结将涵盖 Java 的基础知识,包括 Java 概述、Java 语法基础、变量、数据类型、运算符、控制语句、方法、数组、继承、多态、接口、异常、IO 流等。 一、Java ...

    java继承实验(实验七)

    这个实验"java继承实验(实验七)"旨在深入理解并实践Java中的继承概念。在这个实验中,我们将探讨以下几个关键知识点: 1. **定义类的继承关系**:在Java中,使用关键字`extends`来表示一个类是另一个类的子类。...

    Java的继承的学习笔记

    总结来说,Java的继承机制提供了代码复用和结构化编程的能力,但同时也需要谨慎使用,避免过度依赖继承导致代码过于耦合。在设计类的继承关系时,应考虑类之间的"is-a"关系,确保子类是父类的一种具体形式,以保持...

    java继承详解

    ### Java继承详解 #### Final关键字 在Java编程语言中,`final`关键字具有重要的作用,主要体现在以下几个方面: 1. **被final修饰的成员变量**: - 被`final`修饰的成员变量一旦赋值后就不可再被修改,这种变量...

    javaAPI学习总结

    它在多线程环境下使用时,需注意同步问题,因为不保证迭代过程中的线程安全。 三、ArrayList与Iterator ArrayList是基于数组实现的集合,提供了快速的随机访问,但插入和删除元素的效率相对较低。在多线程环境中,...

Global site tag (gtag.js) - Google Analytics