第七章 多态
- 格式:doc
- 大小:126.50 KB
- 文档页数:25
多态的概念和作⽤(深⼊理解)多态是⾯向对象的重要特性,简单点说:“⼀个接⼝,多种实现”,就是同⼀种事物表现出的多种形态。
编程其实就是⼀个将具体世界进⾏抽象化的过程,多态就是抽象化的⼀种体现,把⼀系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进⾏对话。
对不同类的对象发出相同的消息将会有不同的⾏为。
⽐如,你的⽼板让所有员⼯在九点钟开始⼯作, 他只要在九点钟的时候说:“开始⼯作”即可,⽽不需要对销售⼈员说:“开始销售⼯作”,对技术⼈员说:“开始技术⼯作”, 因为“员⼯”是⼀个抽象的事物, 只要是员⼯就可以开始⼯作,他知道这⼀点就⾏了。
⾄于每个员⼯,当然会各司其职,做各⾃的⼯作。
多态允许将⼦类的对象当作⽗类的对象使⽤,某⽗类型的引⽤指向其⼦类型的对象,调⽤的⽅法是该⼦类型的⽅法。
这⾥引⽤和调⽤⽅法的代码编译前就已经决定了,⽽引⽤所指向的对象可以在运⾏期间动态绑定。
再举个⽐较形象的例⼦:⽐如有⼀个函数是叫某个⼈来吃饭,函数要求传递的参数是⼈的对象,可是来了⼀个美国⼈,你看到的可能是⽤⼑和叉⼦在吃饭,⽽来了⼀个中国⼈你看到的可能是⽤筷⼦在吃饭,这就体现出了同样是⼀个⽅法,可以却产⽣了不同的形态,这就是多态!多态的作⽤:1. 应⽤程序不必为每⼀个派⽣类编写功能调⽤,只需要对抽象基类进⾏处理即可。
⼤⼤提⾼程序的可复⽤性。
//继承2. 派⽣类的功能可以被基类的⽅法或引⽤变量所调⽤,这叫向后兼容,可以提⾼可扩充性和可维护性。
//多态的真正作⽤,以前需要⽤switch实现----------------------------------------------------多态是⾯向对象程序设计和⾯向过程程序设计的主要区别之⼀,何谓多态?记得在CSDN⾥⼀篇论C++多态的⽂章⾥有⼀名话:“龙⽣九⼦,⼦⼦不同”多态就是同⼀个处理⼿段可以⽤来处理多种不同的情况,在钱能⽼师的《C++程序设计教程》书中有这样⼀个例⼦:定义了⼀个⼩学⽣类[本⽂全部代码均⽤伪码]class Student{public:Student(){}~Student(){}void 交学费(){}//......};⾥⾯有⼀个 “交学费”的处理函数,因为⼤学⽣和⼩学⽣⼀些情况类似,我们从⼩学⽣类中派⽣出⼤学⽣类:class AcadStudent:public Student{public:AcadStudent(){}~ AcadStudent(){}void 交学费(){}//.......};我们知道,中学⽣交费和⼤学⽣交费情况是不同的,所以虽然我们在⼤学⽣中继承了中学⽣的"交学费"操作,但我们不⽤,把它重载,定义⼤学⽣⾃⼰的交学费操作,这样当我们定义了⼀个⼩学⽣,⼀个⼤学⽣后:Student A;AcadStudent B;A.交学费(); 即调⽤⼩学⽣的,B.交学费();是调⽤⼤学⽣的,功能是实现了,但是你要意识到,可能情况不仅这两种,可能N种如:⼩学⽣、初中⽣、⾼中⽣、研究⽣.....它们都可以以Student[⼩学⽣类]为基类。
第七章遗传和变异第一节遗传的物质基础【知识概要】一、染色体是遗传物质的主要载体1.染色体的化学成分染色体的主要成分为DNA和组蛋白,两者含量比率相近,此外,还有少量非组蛋白和RNA。
组蛋白为含赖氨酸和精氨酸比较多的碱性蛋白质,带正电荷。
其功能是参与维持染色体结构,有阻碍NDA转录RNA的能力。
非组蛋白为含天门冬氨酸、谷氨酸等酸性蛋白质,带负电荷。
非组蛋白的特点是:既有多样性又有专一性,含有组蛋白所没有的色氨酸。
非组蛋白的功能是DNA 复制、RNA转录活动的调控因子。
2.染色体的结构核体→螺线管→超螺线管→染色单体。
从舒展的DNA双螺旋经四级折叠,压缩到最短的中期时,DNA分子缩短约5000~10000倍。
二、DNA是主要的遗传物质l.噬菌体侵染细菌实验证实DNA是遗传物质实验步骤如下:2.肺炎双球菌的转化实验证实DNA是遗传物质3.烟草花叶病毒(CMV)的重建说明CMV是不具DNA的病毒,RNA是遗传物质三、DNA的结构和功能1.DNA的结构DNA是四种脱氧核苷酸的多聚体,见下图:DNA的一级结构DNA的主干由磷酸和脱氧核糖交互组成,磷酸和糖由3’、5’一磷酸二酯键联结在一起。
碱基接在每一脱氧核糖的1’碳上其结构要点如下:(1)两条DNA链反向平行,一条走向是5’→3’,另一条走向是3’→5’,两条互补链相互缠绕,形成双螺旋状。
(2)碱基配对不是随机的。
腺嘌呤(A)通过两个氢键与胸腺嘧啶(T)配对,鸟嘌呤(G)通过三个氢键与胞嘧啶(C)配对(见右图)。
GC对丰富的DNA比AT对丰富的DNA更为稳定。
(3)DNA的双螺旋结构中,碱基顺序没有限制性,但是碱基对的顺序却为一种DNA分子提供了它性质上的特异性。
(4)双链DNA具有不同的构型,其中3种具有生物学上重要性。
①B—DNA:右旋,正常生理状态下的常见形式。
②A-DNA:右旋,脱水状态下的常见形式。
③Z—DNA:左旋,这种结构可能与真核生物中基因活性有关。
《Java面向对象程序设计-继承和多态》教案第一章:引言1.1 课程简介本课程旨在帮助学生掌握Java面向对象程序设计中的继承和多态概念。
通过学习,学生将能够理解继承和多态的原理,并能够运用它们解决实际编程问题。
1.2 课程目标理解继承的概念和原理掌握如何使用继承来实现代码复用理解多态的概念和原理掌握如何使用多态来实现动态绑定第二章:继承2.1 继承的概念介绍继承的定义和作用解释为什么使用继承2.2 继承的语法介绍如何使用extends关键字实现继承解释继承中的构造函数和继承关系2.3 继承的实现演示如何使用继承来复用代码解释继承的层次结构和菱形继承第三章:多态3.1 多态的概念介绍多态的定义和作用解释多态的好处3.2 方法重写解释方法重写的概念和规则演示如何使用方法重写来实现多态3.3 方法重载解释方法重载的概念和规则演示如何使用方法重载来提高代码可读性第四章:继承和多态的案例分析4.1 案例一:动物和鸟类使用继承和多态来定义动物和鸟类的关系实现动物和鸟类的属性和方法4.2 案例二:形状和圆形使用继承和多态来定义形状和圆形的关系实现形状和圆形的属性和方法第五章:总结和练习5.1 课程总结回顾继承和多态的概念和原理强调继承和多态在面向对象程序设计中的重要性5.2 练习题提供一些练习题,以帮助学生巩固所学知识第六章:继承和多态的深入理解6.1 继承的类型解释接口继承和类继承的区别讨论继承的优点和缺点6.2 多态的应用探讨多态在日常编程中的应用场景分析多态如何提高程序的可扩展性和灵活性第七章:Java中的继承和多态实例7.1 继承实例:汽车和摩托车通过实例展示如何使用继承来创建汽车和摩托车类演示如何通过继承来扩展属性和方法7.2 多态实例:支付接口和具体的支付方式创建一个支付接口和多个具体的支付方式类演示如何使用多态来实现不同的支付方法第八章:继承和多态的陷阱与最佳实践8.1 继承的陷阱讨论继承可能带来的过度耦合问题解释如何避免继承的陷阱8.2 多态的陷阱分析多态可能导致的类型不匹配问题探讨如何安全地使用多态8.3 最佳实践提供使用继承和多态的最佳实践指南强调代码可读性和可维护性第九章:继承和多态在设计模式中的应用9.1 设计模式简介介绍设计模式的概念和重要性解释设计模式与继承和多态的关系9.2 继承和多态在设计模式中的应用案例通过案例分析展示继承和多态如何在设计模式中发挥作用讨论设计模式如何提高程序设计的质量和可复用性第十章:课程回顾与拓展学习10.1 课程回顾总结本课程的重点内容和关键概念强调继承和多态在实际编程中的应用10.2 拓展学习资源提供一些拓展学习的资源和建议鼓励学生继续深入学习面向对象程序设计的其他方面第十一章:继承和多态的实际应用案例11.1 案例分析:图形库的设计通过分析图形库的设计,展示继承和多态如何用于实现复杂的图形操作。
C#一、第一章:了解.net framework01.什么是.net framework?由微软开发的软件开发平台。
framework的组件:公共语言运行时.net framework类库3.注释://单行注释/*多行注释*/ ///文档注释二、第二章:C#语法基础4.变量的定义格式:数据类型变量名=值;常量的定义格式:const 数据类型变量名=值;5.数据类型:byte short int long float double decimal char bool6.运算符:算术运算符:+ - * / % ++ --赋值运算符:= += -= *= /= %=逻辑运算符:&& || !关系运算符:== != ><<= >=条件运算符:表达式1?表达式2:表达式37.分支结构:单分支语句:If(条件){代码块}双分支语句:if(条件){代码块}else{代码块}多分支语句:if(条件){代码块}else if(条件){代码块}else{代码块}嵌套语句:if(条件){if(条件){代码块}else{代码块}else{代码块}switch分支语句格式:Switch(表达式){case 值1:代码块break;case 值2:代码块break;.......default:代码块break;}8.循环结构:while(条件){循环体}do{循环体}while(条件);for(初始化语句;条件语句;控制语句){循环体}foreach(数据类型变量名in 数组或集合){ }9.数组的初始化:数据类型[]数组名=new 数据类型[数组长度];数据类型[]数组名=new 数据类型[]{数据1,数据2,....};数据类型[]数组名={数据1,数据2,....};数据类型[]数组名=new 数据类型[数组长度]{数据1,数据2,....};10.枚举的定义:public enum 枚举名{成员1,成员2,......}11.枚举的使用:枚举名.成员或枚举名变量名=枚举名.成员12.创建对象:类名对象名= new 类名();13.数据类型转换:Int转string:int a =19;String str =a.ToString();Srting 转int:int i=int.Parse(console.ReadLine());三、第三章:类与对象的应用14.类与对象的关系:类是对象的模板,对象是类的具体表现。
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。