热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

假如天主是程序员,他是怎样制造世界上一切动物的?

tips:本文只管用质朴易懂的言语来诠释面向对象的头脑。荒古时代天主起首制造了几个原始类originalclass。比方:动物类Animal,植物类Plant,地形类Topogra

tips:本文只管用质朴易懂的言语来诠释面向对象的头脑。

荒古时代

天主起首制造了几个原始类 original class。比方:动物类Animal,植物类Plant,地形类Topography,气候类Atmosphere等作为地球上统统物资的末尾,而本文我们将运用动物类作为例子。

分类而生

在制造了动物类Animal以后,为它添加了大众属性mouth:true大众要领eat(){},mating(){}

以后他决议最先细分,这里我们做的简朴一点,并不依据“界门纲目科属种”的分类依据,而是直接依据人类Human,猫类Cat,狗类Dog 等举行细分。

他依据动物类Animal制造了人类Human,我们能够说,人类继续自动物类,所以人类这个类中也会存在动物类的大众属性和大众要领。一样的,人类也有本身的大众属性stand:true大众要领farming(){} 。然后,天主依据人类Human制造了一个人:小明。

小明是一个依据Human制造出的实例对象,20岁的会弹钢琴的男性程序员,他同时继续AnimalHuman类的大众属性大众要领

mouth:true,
stand:true,
farming(something){
...
},
eat(something){
...
},
mating(someone){
return xxx
}

而他的私有属性occupation:programmer私有要领playingPiano(){...},小明把他的个人状况都藏起来【封装】,只要他通知他人本身的状况,他人才会晓得,而且他人不晓得他会弹什么曲子的,只能说“小明你弹个钢琴给我听一下”。挪用
小明.playingPiano()封装以后只要对外供应接口后才能够运用

有一天,小明认识了一个女生小白,小白是一个21岁的会唱歌的客服,私有属性customService私有要领singing(){...}。厥后他们谈恋爱而且完婚了,有一天小明挪用了本身的要领mating,并将小白作为参数传入,随后return出了一个孩子:小黑。然则小黑并没有继续小明的playingPiano和小红的singing,反倒是有了本身的私有属性tellingStory。但唯一和小明另有小红一样的是,他继续了动物类Animal和人类Human大众属性大众要领

与此同时,另一对夫妻小华和小花,他们也挪用了本身的mating,然则 return 的是另一个与小黑差别的孩子——小月,她的私有属性与她的父母都差别,是playingBasketball,但一样的,她也继续了动物类Animal和人类Human大众属性大众要领

为何都挪用了mating要领,返回的孩子却不一样呢?这就是多态。当同一个操纵(要领)作用与差别的对象时,会发生差别的实行效果。

以上,面向对象的三个基本特征 封装、继续、多态 都讲完了。一定讲的不够深切,如果有什么明白上不正确的迎接在批评区中斧正,也迎接人人议论。


推荐阅读
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 本文探讨了如何利用RxJS库在AngularJS应用中实现对用户单击和拖动操作的精确区分,特别是在调整区域大小的场景下。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • 本文是对《敏捷软件开发:原则、模式与实践》一书的深度解析,书中不仅探讨了敏捷方法的核心理念及其应用,还详细介绍了面向对象设计的原则、设计模式的应用技巧及UML的有效使用。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • TCP协议中的可靠传输机制分析
    本文深入探讨了TCP协议如何通过滑动窗口和超时重传来确保数据传输的可靠性,同时介绍了流量控制和拥塞控制的基本原理及其在实际网络通信中的应用。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本周三大青年学术分享会即将开启
    由雷锋网旗下的AI研习社主办,旨在促进AI领域的知识共享和技术交流。通过邀请来自学术界和工业界的专家进行在线分享,活动致力于搭建一个连接理论与实践的平台。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
author-avatar
初语2265_781
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有