本页开篇语:
法律提示:
作为一个准就业人士、创业经营者建议多学习有关劳动就业
的法律法规,最好能熟知我国《中华人民共和国劳动合同法》、
《工资支付暂行规定》、《中华人民共和国社会保险法》
《职工带薪年休假条例》等的相关规定,多看一些有关法律行家
所讲解的法律案例。也为自己在上网购物、日常购物中多了解
一些消费维权的法律知识、案例讲解,婚姻家庭法的法律知识、案例讲解。
中国普法之路任重而道远,本网站愿意为这一重任承担一份力量!
诉讼维权须知:《诉讼费用交纳办法》
提醒即将找工作或正在找工作的求职者:在你求职时要熟悉一下我国的
《禁止传销条例》
如遇到条例中的情况及时与工商行政管理部门、公安机关110联系举报。
社会救助:
最低生活保障、临时救助(兜底作用) 特困人员供养(年满60周岁没有收入来源、
无法定赡养人、法定赡养人无赡养能力的。)
法律根据:《社会救助暂行办法》、《广东省社会救助条例》、《广东省社会救济条例》
详情可到当地民政局救助处咨询低保、特困人员供养事宜。以当地民政局答复为准,千万
不可道听途说听取似懂非懂的人的说法。
温馨提示:以上救助并非所有情况都可以申请救助,具体执行情况需要到当地的相关行
政主管部门咨询为准。
如:广东清远市:清城区民政局咨询电话: 3828120 洲心街道民政办咨询电话:3503089
就业指引:
就业服务中心
劳动争议仲裁
自考须知:根据教育法的修改,不要办假证,也不要找替考。
不然你一辈子都得背着可能被撤销毕业证的压力,得不偿失。
热点文章推荐:
首页 > 知识大全 > 学习看点:面向对象程序语言当中的抽象理论一直是程序员难以理解的概念
自考信息:
学习看点:面向对象程序语言当中的抽象理论一直是程序员难以理解的概念
|
发布日期(Date):
[2021-07-01 T 20:02:34]
|
作者:周礼
作品名称:C#和.NET3.0第一步
网站知识内容来源全部名单: 查看
发表说明:
作者介绍:周礼。中山大学计算机应用专业硕士;拥有高级程序员证书;文学作品多次获奖。具有丰富的软件设计开发经验。曾任香港理工大学深圳研究院多媒体创新中心项目负责人(系统分析师)、台湾亚米多游戏科技有限公司开发工程师(高级软件工程师)、晨星资讯(深圳)有限公司项目负责人(系统工程师、分析师)、北大青鸟深圳鲲鹏培训中心.NET高级讲师。先后负责及参与的项目包括:语音卡驱动、游戏引擎、流媒体传输播放项目、远程教育平台、分布式金融数据采集等系统。目前从事IT教育培训工作,主要负责Java及.NET平台的课程培训。
抽象类
如果说继承是面向对象设计理论的基石,那么抽象理论和方法又是继承理论里的顶梁柱。如果说继承是面向对象这台汽车的发动机,那么抽象就是发动机里的活塞。相对于C++等古老的面向对象语言,C#里面的抽象机制更加直观和合理。虽然C#语法让我们可以更加方便和直观的定义和使用抽象类、抽象方法、接口及虚方法等实现抽象机制的要素,但抽象毕竟还是很“抽象”。面向对象程序语言当中的抽象理论一直是程序员难以理解的概念。
何谓抽象和抽象类
在理解抽象类和抽象方法之前我们先来看一下“抽象”一词到底是个什么概念,翻开汉语词典查找抽象的含义(金山词霸也行)如下。
抽象[abstraction]:
1.将复杂物体的一个或几个特性抽出去而只注意其他特性的行动或过程(如头脑只思考树本身的形状或只考虑树叶的颜色,不受它们的大小和形状的限制)。
2.将几个有区别的物体的共同性质或特性形象地抽取出来或孤立地进行考虑的行动或过程。
3.抽象对于将东西分成属及种是必需的。
4.摘要,提炼,抽象化。
理解了上面的抽象的解释,基本上对程序里的抽象概念也就有个底,程序里的所有关于抽象的理论实际上都是在效仿现实中的抽象理论和方法。从上面的解释可以看出,抽象信息是从事物中抽取的特征和性质,并不是事物本身,也因此在程序里存储抽象信息的抽象类也不能实例化。程序设计理论里的抽象也只是一种描述一种摘要,它规定一些方法和数据,这些方法和数据是从子类里面提炼出来的。抽象的方法需要子类来实现,只有这样才有意义。第四个解释的“摘要”一词最能说明抽象类,抽象类就好比一篇摘要,摘要中涉及的很多要点都要在文章的各个部分实现,同样抽象类功能需要子类来实现。我们在查找某篇文章时往往先看摘要,摘要可以代表这篇文章,也同样通过查看抽象类你可以明晰子类提供的功能,并且抽象对象也可以代表子类实例行使功能。
说了这么多我们就为了引出抽象类最重要的三个描述:
抽象类是子类的一个描述
抽象类不能自己实例化,但可以代表子类实例(也就是引用子类对象)。
抽象类和接口都是用来实现抽象的。
在C#中我们可以定义抽象类及抽象方法,定义方式如下:
访问修饰 abstract class 类名
{
抽象类体
}
抽象类定义示例:
public abstract class Employee
{
protected string nid;
public abstract int GetSalary();
public abstract int Name { get;set;}
public abstract int this[int n] { get;set;}
}
抽象类的定义和普通类的定义方式非常相似,只是在class和类的访问修饰符中间加了一个abstract关键字。抽象类里面可以定义抽象方法、抽象属性以及抽象索引器。抽象方法的定义也是在普通方法定义的基础上加上一个abstract关键字即可。我们说抽象类只是用来描述功能,所以这些抽象的方法、属性等你不能去实现它,只写个空壳就可以了。当然要注意抽象方法和抽象属性的写法,抽象方法不需要方法体,而抽象属性和索引器需要空方法体。另外还要注意抽象类里面除了我们刚才提到的抽象方法等抽象成员外,还可以包含任何可以在普通类里定义的元素。当然你始终要记住最重要的一点,抽象类不能直接使用new关键字创建对象实例,这是抽象类和普通类最大的区别。
实现抽象类
我们知道抽象类不能自己实例化,需要使用其子类来实例化。那么抽象类实例怎样才能代表子类实例行使子类功能呢?C#中提供一种重写的机制来完成这个功能。重写关键字是override,子类使用该关键字来重写基类的抽象方法、抽象属性和抽象索引器等(要注意凡是子类继承了抽象类,就必须重写抽象类里面的抽象方法,否则编译会出错)。子类一旦重写了抽象基类的抽象成员,那么抽象基类的对象就可以引用子类实例的这个成员。下面这个示例,我们定义了一个Person抽象类,然后定义了其子类Employee类,并在Employee类重写了基类的抽象成员。
示例如下:
using System;
namespace Test
{
public abstract class Person
{
public abstract void Show();
public abstract string Name { get;set; }
public abstract string this[int n] { get;set; }
}
public class Employee : Person
{
private string name;
private string [] friends=new string[100];
public override void Show()
{
Console.WriteLine("姓名:{0}",this.name);
}
public override string Name
{
get { return this.name; }
set { this.name=value; }
}
public override string this[int n]
{
get { return this.friends[n]; }
set { this.friends[n]=value; }
}
}
class Program
{
static void Main(string [] args)
{
Person p=new Employee(); /*抽象类对象引用子类实例*/
p.Name="曹操";
p.Show();
}
}
}
显示结果是:
姓名:曹操
如果我们把示例代码换为:
class Program
{
static void Main(string [] args)
{
Employee p=new Employee();/*注意这里*/
p.Name="曹操";
p.Show();
}
}
结果和上面一模一样,为什么呢?
对于“Employee p=new Employee()”的原理我们都清楚,p是一个Employee类的对象,它显示这样的结果不出我们所料。但是“Person p=new Employee()”这个例子就不一样了,显得怪怪的,它定义了一个基类的变量却又让它指向子类对象。不管怎样,我们知道Person是Employee的基类,那么根据继承那一节学习到的知识我们知道,当创建子类实例时,系统会自动先创建基类实例,那么现在问题来了,此时的p到底是谁?
事实上此时的p还是Person的对象,p只能调用Person中定义的方法和属性,只不过当调用被子类重写过的方法和属性时,将会用子类实例中对应的方法和属性来代替执行。这种机制就是传说中的动态调用机制,只有抽象方法和虚方法才有此动态调用机制。
|
|
|
本网教育发展计划:
第一:通过为每一个网民提供更多的文字或图片教育资源服务
第二,挑选更多的优秀学者、公司
职员、学校老师、教授等制作网络辅导视频、提供在线答疑服务。
说明:只有通过互联网才可以无论在公司、在家里都能自由、随意的去学习和
搜索自己需要学习的知识。在互联网上的文字、图片资源不需要
像图书馆一样要借阅,你想看和学习多长时间都是无限制的,并且哪一个知识点不会
可以通过互联网像百度一样搜索出来,
本网有什么不足的地方可以发邮件提出你宝贵的意见和
建议1056633246@qq.com,本网会集思广益,好意见和建议本网是会吸纳的。
自考过程中猜您的疑问:
问:自考学历为什么不承认?自考本科找工作被拒?
后悔读了自考?自考本科有用吗?自考就是骗局?自考学历入职被拒绝?
自考本科单位承认吗?
答:自考是高等教育组成的一部分,在《高等教育自学考试暂行条例》
和《中华人民共和国高等教育法》、广东省的《广东省自学考试实施细则》、
广东省人民政府办公厅《关于鼓励自学成才的若干规定》
均有明确规定,自考是国家承认学历,法律法规
认可有效的学历证书即具有法律效力的。纳入法律范围就受到法律的保护。至于有的
用人企业不认可是他们缺乏法律知识或法律意识,在中国社会轻视法律存在的人还是有的
不应该太看重那些不承认自考学历的现象。必要时我们在就职时遇到违反法律规定时、自己合法权益受到侵害时可以
积极利用法律的武器保护自己的合法权益。不承认自考学历是
对自考存在一种偏见、人才观念的一种态度和违反国家法律法规的一种违法行为。我们
不应该为了有的用人企业不认可就不选择自考,毕竟自考是成才的一种机会,它可以让您
改变命运的机会,如考取国家公务员、进入国家事业单位、国有企业等为您创造机会、
创造条件的。参加自考是获得文凭、获得知识的机会,就业、创业重要的是个人
能力得到提升、个人的综合能力(学科专业能力、分析能力等)的培养。
问: 自考流程是什么?全国自考报名系统入口?自考怎么报名?
答:自考的流程是在指定时间到自考办现场报名或自考办官方网站、自考办委托的考试报名网站(详情咨询自考办,自考办联系电话可“114”查询)网上报名课程 → 购买
教材 → 个人自主学习或参加社会助学机构(全日制、业余助学)、网络助学学习 →
在考试当天前查询考场等考试信息 → 参加考试 → 所有专业课程考试合格 → 实践
考核课程通过 → 论文通过 → 在指定的时间内在每年6月、12月申请毕业 →
最后获取高等教育自学考试专、本科毕业证书和学位证书。
问:自考本科含金量高吗?自考本科需要什么条件?
答:含金量一说没有绝对的说法,招聘看用人企业的用人观念、
人才观念决定的。我们在选择自考专业时更应该从自己的兴趣、特长、优势
去考虑,选择一个适合自己的专业学习、考试。选择了合适自己的专业去
深入钻研才有可能学有所成。自考不受年龄、学历层次限制的,自考本科
只要是中国公民均可以报名,但在申请自考本科毕业证书及学位证书时需要提供
国家承认的专科毕业证书(专科毕业证可以是成人高等教育的、电大、
自考的、网络教育的)。
问:自考的真实通过率是多少?自学考试有哪些专业?自学考试难吗?自学考试要多久?
答:自考的真实通过率是无法预知和控制的,参加考试人数(有些情况下
出现考生缺考的情况也不是没有的)、应考人员自身
知识强弱是参差不齐的,因此很难控制通过率的。自学考试的专业是根据
各省、自治区、直辖市的社会需求开设的,详细专业情况可以百度搜索你
所在的省、自治区、直辖市的自考办官方网站查询。自学考试难不难或考多久,要
看考生的知识基础、个人接受能力、在课程学习上付出的程度上、应考心理
等有关。
问:自考辅导机构哪家好?自考辅导班需要报吗?
自考辅导机构押题准吗?
答:自考辅导网校哪个好?作为评价一家网校的优劣要综合考虑,
师资、办学时长、网站规模、办学资质等来考虑。自考是在接受
大学教育,大学知识都有一定难度,建议有条件的考生报自考辅导
班在老师的讲授和指导下学习会更轻松、更快掌握考核知识点,
一本自考教材可能会因受到编者的语言表达能力等可能对部分人
的理解存在欠缺,如果不报辅导班在学习自考教材的时候遇到不明白
的知识点在借助其他参考书时也不一定能够解决,而通过辅导班学习不但可以
能够在老师的讲授下学习,遇到不明白的地方可以提供答疑以帮助您
解决问题。从而让您少消耗更多的时间在困惑问题上面。自考辅导机构押题
不一定准确,虽然自考辅导机构的老师有着多年的辅导经验,但自学考试
是教考分离的,教的老师就不得参与考试命题,参与命题的人员就不得
参与辅导工作,并且命题人员签有保密协议不能泄漏考题,泄漏了考题的
要依法追究“泄漏国家机密罪”论处的。所以不要抱着辅导老师押题来
通过考试的心理。