IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:继承

共 6 篇相关文章

IT 累计浏览 3,561

[Java基础教程]第十一章-Java类和对象

这篇讲的是Java面向对象编程中类与对象的核心机制。作者从Object类的方法重写说起,强调了继承中`hashCode`与`equals`必须协同重写的规范,并用`toString`的重写来解释如何让对象打印变得友好。 文章的重点在于辨析继承与接口这两种实现代码复用的方式。通过一个“小明的妈妈”既需要继承`Person`类又能烹饪的例子,作者生动地引出了`extends`单继承与`implements`多实现的语法区别与设计思路,这比单纯罗列语法要直观得多。 此外,内容还系统梳理了四种访问修饰符(`private`到`public`)的权限范围,这常常是初学者容易混淆的地方。文章并未止步于此,而是进一步延伸到了反射、抽象类和枚举`enum`这些进阶主题,特别是通过反射操作`Materfamilias`类的代码示例,让“类本身也是对象”这一抽象概念变得可感。 整体而言,这不仅仅是一章语法罗列,而是围绕“类”这个核心,将继承、多态、封装以及动态特性串联起来,构建了一个完整的认知框架。

IT 累计浏览 3,429

JavaScript 函数、作用域和继承

这篇讲的是 JavaScript 中几个最核心也最容易让新手困惑的概念:函数、作用域和继承。作者从最基础的函数声明形式聊起,解释了函数体内部可以使用的参数、函数名、`this` 上下文和 `arguments` 对象,并用一个简洁的代码示例让这些抽象概念变得直观。 接着文章深入到作用域和闭包。作者用一个“外部不能访问内部变量,内部可以访问外部变量”的规则来解释闭包,并通过代码对比了 JavaScript 的函数级作用域与其他语言块级作用域的不同。特别值得注意的是对“变量提升”(hoisting)机制的剖析,文章展示了未声明变量与函数提升后的代码实际执行顺序,点明了初学者容易掉入的陷阱。 至于继承,作者没有堆砌代码,而是推荐了几篇经典的外部文章,引导读者去理解封装、构造函数继承和非构造函数继承等不同模式的设计思路。文章通篇用具体的代码片段来阐释概念,风格亲切但知识点扎实,非常适合想要理清这些基础但复杂概念的开发者。

IT 累计浏览 2,565

JavaScript原型之路

这篇文章探讨了JavaScript中两种对象创建方式的差异与选择:传统的构造函数方法与更纯粹的原型(OLOO)方法。 作者从Frontend Masters的教程和一篇经典博文出发,对比了这两种路径。标准方法通过构造函数和原型链建立继承,是目前大多数教程和框架(如Angular)所要求的。而纯原型方法则利用`Object.create()`直接克隆对象,语法上更接近IO这类原生原型语言,显得更直接和动态。 然而,文章指出一个关键的现实考量:性能。测试显示,纯原型的实现在某些操作上可能比构造函数方式慢数十倍,这是JavaScript引擎优化导致的结果。此外,ES6引入的`class`语法本质上仍是构造函数的语法糖,并未改变原型的底层机制。 作者的结论反映了实践中的权衡:个人偏好纯原型的表现力和趣味性,但在追求性能的生产代码中,会继续采用构造函数方法,并期待未来能更广泛地使用ES6的类语法。

IT 累计浏览 2,578

javascript嵌套函数的效率问题

这篇讲的是JavaScript中一个容易被忽略的性能细节:嵌套函数的效率陷阱。作者从日常编码习惯切入,指出在函数内部频繁定义嵌套函数或匿名函数,会导致JavaScript引擎反复创建与销毁函数对象,拖慢执行效率。通过具体的代码对比和性能测试数据,文章展示了将嵌套函数提取为独立函数或利用`prototype`关键字共享方法后,性能可以提升10%至90%不等,尤其在循环调用场景下收益显著。 文章还延伸到了jQuery插件开发和自定义构造函数中常见的写法,分析了其中嵌套函数的性能代价。核心结论很明确:在需要多次复用的逻辑上,应优先考虑将函数外提或放在原型链上,而不是为了代码的“整洁”或“封装”而盲目嵌套。作者通过清晰的图示和jsPerf测试链接,让抽象的内存管理机制变得直观,为开发者在编码便利性与运行效率之间做出了有价值的权衡参考。

IT 累计浏览 3,553

关于python和C++中子类继承父类数据的问题

这篇讲的是作者在测试Python和C++类继承时遇到的一个“诡异”现象。他原本想验证子类如何从父类继承数据,并特意编写了两种类继承的代码进行对比测试。然而,代码运行的结果却与直觉相悖,暴露出两种语言在继承实现上的根本差异。 问题的根源在于Python和C++处理对象内存布局和属性访问的机制截然不同。Python作为动态语言,对象的属性可以在运行时灵活绑定与修改;而C++作为静态语言,对象的结构(包括其成员变量)在编译时就已确定。这种底层差异,导致在某些特定的继承写法下,子类对父类“数据”的操作和访问会呈现出完全不同的行为,这正是作者测试中遇到的核心“坑点”。 作者通过具体的代码实例,清晰展示了问题是如何产生的,并剖析了背后的语言机制。这对于需要同时处理这两种语言,或对语言底层实现感兴趣的开发者来说,是一次很好的警示:切勿想当然地认为继承行为跨语言一致,理解其背后的内存与类型模型至关重要。

IT 累计浏览 2,454

JS 常用继承实现方式

这篇讲的是JavaScript中实现继承的三种经典方式。作者在研读《JavaScript 设计模式》时,将书中提到的从原型链到组合继承等具体实现进行了提炼和记录,目的是帮助开发者解决“记不住、易混淆”的基础痛点。 文章没有泛泛而谈,而是直接切入三种不同继承方式的核心代码与逻辑差异。比如,原型继承如何实现属性复用但可能导致引用值共享问题,构造函数继承怎样解决引用共享却无法复用方法,而组合继承又是如何结合前两者优点成为早期标准方案的。作者通过对比梳理,清晰地呈现了每种方式的适用场景与潜在陷阱。 对于需要夯实JS基础、厘清原型与继承脉络的开发者来说,这篇总结提供了一个清晰、可随时查阅的实践备忘。