白话面向对象

关于面向对象的学习,将是一个长期的过程,每一个阶段都会有不同的看法,现在对面向对象中的各种术语有有了一点新的认识,我以白话的形式描述出来。

1.类和对象

一个对象就是一个实体,你是一个对象,我是一个对象,孙悟空是一个对象。

类是具有相同属性和功能的对象的抽象集合,比如说人类,球类;类中的每一个对象都具备类的特征,就像是超人这个对象也是人类,因为他具备人类的一般特征(两个眼睛应该鼻子等等。。)


2.方法重载

同一名字的方法有着不同的能力,比如说你在一个咖啡厅偶遇了一个姑娘,你就这么爱上了她。如今十年过去了,你在那个咖啡厅再次偶遇上了她,你突然发现原来现在你对她已经没啥感觉。虽然是同样的人,同样的地方!但你的感情却变了,你的感情在这里被重载了。


3.封装

封装是一个概念,它的含义是把方法、属性、事件集中到一个统一的类中,就像是我们知道手机能打电话发短信,但是不知道它的这些功能是怎么实现的。这我们就可以认为手机被封装起来了。

4.继承

若子类继承父类,子类拥有父类非private属性和功能,子类拥有自己的属性和功能(扩展),子类还可以以自己的方式实现父类功能(方法重写)。


5.多态

一个同样的函数对于不同的对象可以具有不同的实现。例如一个Add方法,它既可以执行整数的加法求和操作,也可以执行

字符串的连接操作!

又比如说,儿子带父亲上台表演,儿子和父亲长得像,学的也像,所有化化妆观众都看不出来,但是要注意 1、子类以父类身份出现 2.儿子模仿再好也是儿子,所以子类以自己的方式实现 3.子类以父类形式出现时,子类特有属性和方法不可使用,这个也很好理解,怎么说都是装的嘛,哪能使出自己的绝活啊,要不就露馅了。


6.接口与抽象类

类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象。

一个类只能继承与一个抽象类,但可以有很多接口。就像是孙悟空有猴类的一般特征,可以继承于猴类,但是他可以有诸如72变、火眼金睛等不同的接口。


8.委托和事件

委托:在程序设计过程中,有时具体调用哪个方法还未确定,而在运行过程中才能确定;或有时因为需要,我们并不想

直接调用一个方法,而是通过间接方式调用 。

比如你委托我拿笔,这个委托是成功的,因为你委托给了我(人选合适)且明确要的东西(正确和必要的信息传递)

委托实例的一个有趣且有用的属性是:它不知道也不关心它所封装的方法所属的类;它所关心的仅限于这些方法必须与

委托的类型兼容。这使委托非常适合于“匿名”调用。——《C#语言规范》



写在最后:学无止境,没个阶段都会有新认识,只有不断学习,不断进步,才能推开成功的大门。

转载于:https://www.cnblogs.com/jinfulin/p/3797722.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shell常用命令总结

1、 ls: 类似于dos下的dir命令 ls最常用的参数有三个: -a -l -F。 ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。 ls –l 该参…

Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示...

Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示 今天项目中要实现一个天气的预览,加载的信息很多,字段也很多,所以理清了一下思路,准备独立出来写一个总结&#xff0c…

C# WPF MVVM开发框架Caliburn.Micro 名称Transformer⑩①

使用名称TransformerNameTransformer是在Caliburn.Micro v1.1中引入的,它是ViewLocator和ViewModelLocator如何将类名映射到其伙伴角色的一个组成部分。虽然您可以覆盖这些服务上的各种函数来替换底层行为,但您的大多数需求都应该通过使用适当的NameTran…

史上最可怜的科学家:出生先天不足,家道中落吃不上饭,追个星丢工作,拜师被冤枉,写书又被烧,最后还被拖工资活活拖死了......

全世界只有3.14 % 的人关注了爆炸吧知识今天,小天来向各位模友介绍一个痴迷偶像正面刚的小迷弟吧。多病的贫家子,鲁莽的小迷弟1571年,开普勒在德国维尔镇呱呱落地了。作为一个善解人意的宝宝(胚胎),开普勒没…

[zz]为 Lua 绑定 C/C++ 对象

转载自: http://blog.codingnow.com/2013/01/binding_c_object_for_lua.html 如何绑定 C/C 对象到 Lua 里?通常是创建一个 userdata ,存放 C/C 对象指针,然后给 userdata 添加元表,用 index 元方法映射 C/C 中的对象方…

文本字符集转换

http://lqqnotes.blog.51cto.com/3329069/659886 拉取数据 在我opensuse下OK 产品的WIN下面乱码 # enca -L 现在文件的语言 -x 需要转换编码 需要转换编码的文件 查看文件编码jinlinux-gzy1:~> enca -d Downloads/store_sdb_ectools_regions_0211-3.csvDownloads/store_sdb…

php 身份认证服务,PHP的HTTP身份认证

PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本。在 Apache 模块的 PHP 脚本中,可以用 header() 函数来向客户端浏览器发送“Authentication Required”信息,使其弹出一个用户名/密码输入窗口。当…

C# WPF MVVM开发框架Caliburn.Micro View / View Model 命名⑨

01—约定在收到Caliburn Micro中有关视图和ViewModel解析的反馈后,我们添加了新功能,以简化类型解析,同时保持驱动它的健壮的基于正则表达式的名称转换机制。为了更好地了解这些新功能以及类型解析通常如何在框架中工作,现在是详细…

rman归档删除

rman&#xff1a; delete [all] input 数据库oracle 11g 全备脚本如下&#xff1a;rman target / <<EOFrun {allocate channel t1 type disk; allocate channel t2 type disk; allocate channel t3 type disk; set limit channel t1 kbytes 4194304;set limit channel t…

史上最气人的数学家:文理双全智商还高,说话只说半句,解题只解半个,调戏人调戏了三百年还不够......

全世界只有3.14 % 的人关注了爆炸吧知识大家上学的时候有没有想过&#xff1a;在数学试卷上调戏阅卷人。想想小天&#xff0c;会都不会写&#xff0c;还调戏阅卷人&#xff1f;想都不敢想。但一个知乎大佬就做了。他居然用费马的原话作答&#xff1a;我已经想到了一个极佳的证明…

php验证手机验证码过期,验证过期时间

~~~//说明目前短信验证码发送成功 需要记录具体的验证码到session。//需要保证验证码有过期时间。关于过期时间 可以记录当前发送验证码的时间以及具体的有效时间$dataarray(code>$code,time>time(),//指定当前的时间limit>3600,//表示具体的过期时间);session(telcod…

数据库(连接)

连接&#xff1a; 为什么需要连接&#xff1f;&#xff1a;因为我们需要的数据在不同的表中 内连接&#xff1a; select 列A from 表A inner join 表B on 条件1条件2 在内连接中可以省去 inner 注&#xff1a;on 必须和join 一起出现 他没有单独存在的意义 外连接&#xff1a…

Hello Blazor:(15)使用bUnit进行单元测试

bUnit介绍bUnit是Blazor组件测试库。其目标是使编写全面、稳定的单位测试变得容易。有了bUnit&#xff0c;你可以&#xff1a;使用C#或Razor语法设置和定义测试下的组件使用语义HTML比较器验证结果与组件以及触发事件处理程序进行交互和检查传递参数、级联值并将服务注入测试组…

*p++,(*p)++,*++p,++*p有什么不同

例如int a[5]{1,2,3,4,5}; int *p a;*p 先取指针p指向的值&#xff08;数组第一个元素1&#xff09;&#xff0c;再将指针p自增1&#xff1b;cout << *p; // 结果为 1cout <<(*p); // 1(*p) 先去指针p指向的值&#xff08;数组第一个元素1&#xff09;&#xff…

掌握这个姿势,女友不再叨叨叨

1 请收下我的膝盖2 正确姿势3 前世五百次的回眸 才换来今生的一次神同步4 论引体向上&#xff0c;你是不如我的5 教科书式的傲娇6 只有我最摇摆7 这是什么原理&#xff1f;你点的每个赞&#xff0c;我都认真当成了喜欢

ubuntu安装matlab2009,Ubuntu中安装Matlab2010a

Ubuntu中安装Matlab2010a一&#xff0e;前言&#xff1a;相信大家对于Matlab应该很熟悉吧&#xff0c;我就不多做介绍了。对于如何在Ubuntu中安装Matlab很多人都不懂&#xff0c;大家都是新手&#xff0c;可以理解。我自己本身就是一个菜鸟&#xff0c;所以决定写这篇文章&…

数据结构笔记--栈的总结及java数组实现简单栈结构

杂谈"栈"结构:   栈(Stack)是一种插入删除操作都只能在一个位置上进表,这个位置位于表的末端,叫做栈顶(Top). 对栈的基本操作有push和pop,表示进栈和出栈.也就相当于插入和删除操作. 栈结构又叫做LIFO(后进先出)表.归根结底是一个表结构,因此任何能够实现表结构的方…

45岁,一个平凡大叔的异地打工生活

&#x1f4e2;欢迎点赞 &#xff1a;&#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff0c;赐人玫瑰&#xff0c;手留余香&#xff01;&#x1f4e2;本文作者&#xff1a;由webmote 原创&#xff0c;首发于 【掘金】&#x1f4e2;作者格言&#xff1a;生活在于…

C之结构体

 C语言中数组允许定义类型的变量,可容纳相同类型的多个数据项,但结构体在C语言编程中,它允许定义不同种类的数据项可供其他用户定义的数据类型。 结构是用来代表一个记录,假设要跟踪图书馆的书籍。可能要跟踪有关每本书以下属性: Title - 标题 Author - 作者 Subject…

用高等数学“铲雪”!这个200多年前的证明太厉害了,有城市用它省了2000多万..........

全世界只有3.14 % 的人关注了爆炸吧知识用高等数学清扫脚下路前几天&#xff0c;北京下了2021年的第一场雪。这让生活在广州的超模君羡慕不已&#xff0c;原本打算春节前去哈尔滨看个冰雕&#xff0c;结果由于各种原因一直都没成行。一个月前被关进小黑屋的设计师妹子刚好来自哈…