什么时候使用继承,有了些新的体会。继承实际上是代码复用的一种很好的实现方式,不同于很多书上开头所描述的那样。从工程的角度其实能更好的理解这个问题,而从自然的角度却往往会更难理解一些。这是一个怪圈,若是不能堪破,终会为那些书所欺骗。
实际的工程经验,有时候胜于只是从书上去理解,能够更加的直至其中之精髓。这是亲身实践后和只是从书本上看得到的不同的东西。隐约的把握住,便能够更上一层楼了。
想使用另一个类中的某段代码,有几种手段。可以继承,但是继承有其局限性。无论是单继承抑或是多继承都有其各自的缺点。为避免其缺点,则又各自发展了很多的解决方案。但是,问题总是会不断的出现,解决了一个问题,可能就会有更多的问题出现。这也是一个怪圈,明白其中的道理,可能会很短的时间但是也可能会花上很长的时间。要看你接触到这个问题究竟是在什么时候,是早些时候就接触了,还是晚些时候才接触的。因其不同,而得到的结果便有所不同。这是一点经验,记录之反思之。总之,编程的一个基本问题,代码的复用,要有好的方式来解决。这不仅节省了代码量,更为后来的扩展提供了方便的接口。因此,便可进一步的知道原来类库中的类都是经过抽象再抽象而得到的一些基础的东西。我们要用的里面的代码也都是非常的基础的一部分。是类库的维护者为我们提供了的,现成的东西。继承他们的东西,很多的代码便不再需要我们去敲,而只是明白其中的作用就可以了。
这种工作的方式,无疑大大的提高了生产力,因为完成的东西无需我们再重新去编写或者仅仅需要完成一小部分的修改就能够满足我们的需要。这是程序的开发过程中,所应该追求的东西。
分享到:
相关推荐
因此,我们需要自定义一个`TimeNodeView`类,继承自`View`,并在此类中绘制这些元素。例如,我们可以在`onDraw()`方法中利用`Canvas`对象进行绘制,使用`Paint`对象设置颜色、字体等样式。 接着,我们需要设计时间...
多态性则是继承的自然延伸,允许子类重写或扩展父类的行为,提供更灵活的代码复用和扩展机制。 ### 接口 #### 接口定义与实现 接口定义了一组方法、属性、事件和索引指示器的集合,没有具体实现。它们用于规定类...
5. **第5章** - 可能讲解面向对象编程(OOP)的概念,包括类的定义、对象的创建、继承、封装和多态性等核心概念。 6. **第6章** - 可能涵盖文件操作,如何读写文件,以及异常处理,这是处理程序可能出现错误的必备...
这意味着在处理类型层次结构时,可以编写不依赖于具体类型的代码,即所谓的“鸭子类型”原则——如果它走起来像鸭子,叫起来像鸭子,那么它很可能就是一只鸭子。在面向对象编程中,这意味着我们可以在不了解对象具体...
- **代码质量**: 强调代码的可读性、可维护性和可扩展性,提倡编写干净简洁的代码。 #### 结论 Java作为一种现代编程语言,其成功不仅仅在于技术上的创新,更重要的是它满足了市场需求的变化和对编程艺术的不断...
### Thinking C++ 中文版 —— 面向对象编程基础及发展 #### 1. 面向对象编程的概念与发展 **计算机革命与面向对象编程(OOP)** 随着计算机科学的发展,计算机不仅仅是简单的硬件设备,它更像是人类思维的延伸和一...
面向对象的三大特性——封装、继承和多态,都是Java设计模式中的重要概念,它们让代码更具可维护性和扩展性。 进一步,我们会探讨异常处理,这是Java中处理程序错误的关键机制。通过try-catch-finally语句块,可以...
X轴水平向右延伸,Y轴垂直向下延伸。这是与数学中的笛卡尔坐标系统相反的,因为在计算机图形学中,屏幕通常是朝向用户,因此向下是正方向。 1. **View的位置和大小**: - **Rect对象**:在Android中,通常使用Rect...
1. 继承Thread类:继承Thread类,并重写run方法,然后创建Thread对象并调用start方法。 2. 实现Runnable接口:实现Runnable接口,并重写run方法,然后创建Thread对象并传入Runnable对象,最后调用start方法。 五、...
【讲座2020】——深入探索C++编程精髓 在2020年的讲座系列中,我们聚焦于C++这一强大的编程语言,旨在帮助开发者深入理解其核心概念,掌握高级特性和最佳实践。C++作为一门静态类型的、编译式的、通用的、大小写...
这样的顺序有助于让每个区块自动继承前一个区块的属性,从而减少代码间的冲突和特殊问题,构建出更清晰的CSS结构。Jonathan Snook提出的SMACSS(可扩展和模块化的CSS架构)为CSS的组织和编写提供了更多的指导。 在...
随着技术的发展,JavaScript也延伸到了服务器端(Node.js)、移动应用开发(React Native、Ionic)、桌面应用(AngularJS Electron)等领域,成为了一门全栈开发语言。学习JavaScript不仅能够让你成为一名合格的前端开发者...
这两本电子书——《Real Time UML》和《uml distilled 2nd》分别由不同的作者撰写,它们深入浅出地介绍了UML的关键概念和应用。 《Real Time UML》这本书专注于实时和嵌入式系统的UML应用。实时UML是UML在处理时间...
这些语言采用面向对象的方法,具有封装、继承、多态等特性,能够更好地模拟现实世界中的实体和关系,使软件的设计更加模块化,提高代码的重用性和可维护性。 除此之外,C语言作为一门重要的程序设计语言,其在软件...
此外,还有复杂的数据类型——对象。 2. 操作符:JavaScript包含算术、比较、逻辑和赋值操作符。例如,"+"用于字符串连接和数值相加,"=="和"==="分别表示宽松和严格相等比较。 3. 控制流:JavaScript提供if......
**Struts2应用举例——详尽实验步骤指南** Struts2是Java Web开发中的一个强大MVC框架,它简化了创建交互式、可维护的Web应用程序的过程。本篇将通过一个具体的实验步骤,帮助初学者深入理解Struts2的核心概念和...