多态.xml
pre{
line-height:1;
color:#1e1e1e;
background-color:#f0f0f0;
font-size:16px;}.sysFunc{color:#627cf6;font-style:italic;font-weight:bold;}
.selfFuc{color:#800080;}
.bool{color:#d2576f;}
.condition{color:#000080;font-weight:bold;}
.key{color:#000080;}
.var{color:#800000;font-style:italic;}
.Digit{color:#ff00ff;font-weight:bold;}
.includePre{color:#1e1e1e;}
.operator {color:#008000;font-weight:bold;}
多态
何为多态?
多态即是多种形态。
多种形态是指一个事物的某种属性会出现多个不同的状态。
比如:云的形状 可能是圆 可能是椭圆 可能是马的样子 也可能是牛的样子
又如鸟: 有的鸟会飞 有的鸟不会飞,有的鸟飞的高、有的鸟飞的低
C++中 实现 即是 : 一个接口,多种实现
运行时多态
在计算机中,如何描述这种多态?
主要的使用方法乃是 继承机制
比如云是基类,各种形状的云是派生类,比如鸟是基类,各种飞行的鸟是派生类。
程序要调用各个派生类的某个描述公共属性的方法,如果为每个派生类写一个调用方法,显然是很浪费的。
由此,C++引人了虚函数概念。
通过虚函数,将派生类的调用,转换为基类指针的操作。
为基类指针赋予不同派生类对象的地址,就可以操纵各个派生类中继承自基类的虚函数。
这样,只需对基类指针处理,就实现了操作各个派生类。
示例:
class Bird
{
public:
virtual void fly()
{
cout<<"Bird Can Fly"<<endl;
}
};
class Duck:public Bird
{
public:
void fly()
{
cout<<"DUCK can not fly"<<endl;
}
};
class Chicken:public Bird
{
public:
void fly()
{
cout<<"Chicken can not fly"<<endl;
}
};
void Fly(Bird *pFly)
{
pFly->fly();
}
void main()
{
Bird bird;
Duck duck;
Chicken chicken;
Fly(&bird);
Fly(&duck);
Fly(&chicken);
while (getchar()!='0')
{
}
}
静态多态
静态多态是指通过模板函数的方式实现多态。
适用于:各个类是单独定义 但是它们具有相同的操作,这个相同的操作便可通过模板函数的方式调用
比如:
Template <class T>
Void DoSomething(T &t)
{
t.doSomething();
}
示例:
class Duck:
{
public:
void fly()
{
cout<<"DUCK can not fly"<<endl;
}
};
class Chicken:
{
public:
void fly()
{
cout<<"Chicken can not fly"<<endl;
}
};
template <class T>
void Fly(T &t)
{
t.fly();
}
Duck duck;
Chicken chicken;
Fly(duck); //编译器在编译时 会自动处理为 Fly<Duck>()
Fly(chicken);
重载
重载指的是函数的重载,在编译时就确定了。在此不再做介绍
本文使用 书画小说软件 发布,内容与软件无关,书画小说软件 更惬意的读、更舒心的写、更轻松的发布。
多态.xml的更多相关文章
- 网络电视精灵~分析~~~~~~简单工厂模式,继承和多态,解析XML文档,视频项目
小总结: 所用技术: 01.C/S架构,数据存储在XML文件中 02.简单工厂模式 03.继承和多态 04.解析XML文档技术 05.深入剖析内存中数据的走向 06.TreeView控件的使用 核心: ...
- 继承,多态,集合,面向对象,XML文件解析,TreeView动态加载综合练习----->网络电视精灵项目练习、分析
网络电视精灵 项目运行状态如图: 项目完成后的类: 首先,将程序分为二部分进行: 一:TreeView节点内容的设计及编写: 1.1遍写XML文件:管理(FullChannels.xml),A类电视台 ...
- java 解析并生成 XML
在 java 中使用 Dom4j 解析 XML 对 XML 文件的解析,通常使用的是 Dom4j 和 jdom 作为XML解析工具. 在此只介绍下 Dom4j 对 XML 文件的解析使用方法. 1. ...
- 打造完美的xml技术解决方案(dom4j/xstream)
转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专 ...
- hbm.xml 详解总结
转自 http://blog.csdn.net/tuke_tuke/article/details/49717991 一.hibernate映射文件的作用: Hibernate映射文件是Hiberna ...
- XML学习笔记3——XSD简述
现在的语言,如果不有那么一点OO的影子,都不好意思称之为语言了.在XML的语义约束方面,DTD虽然简单,但是功能不够强大,完全是直白的描述,于是又有了替代DTD的XSD(XML Schema Defi ...
- jackson对多态or多子类序列化的处理配置
[TOC] Jackson Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 多态类型的处理 jackson允许配置多态类型处理, ...
- 第八章xml学习
1.ASP.NET和JSP的关系 ASP.NET 和JSP都是用来开发动态网站的技术,只不过ASP.NET是通过c#语言来操作的, 而JSP是通过Java语言来操作的. 2.为什么学习XML? 01. ...
- python_day7【模块configparser、XML、requests、shutil、系统命令-面向对象】之篇
python内置模块补充 一.configparser configparser:用户处理特定格式的文件,其本质是利用open打开文件 # 节点 [section1] #键值对k1 = v1 k2:v ...
随机推荐
- z-index无效问题的解决方法
在使用z-index这个属性之前,我们必须先了解使用z-index的必要条件: 1.要想给元素设置z-index样式,必须先让它变成定位元素,说的明白一点,就是要给元素设置一个postion:rela ...
- IE6下position:fixed;兼容
*html{ background-image:url(about:blank); background-attachment:fixed;}/*解决抖动问题*/ .backto-top{ width ...
- Android 手机配office365邮箱
1. 登录office365邮箱,Settings -> manager apps -> account -> Click "Settings for POP or IMA ...
- pyhton类集成
class SchoolMember: def __init__(self,name,age): self.name = name self.age = age print ...
- java 反编译插件 JD-Eclipse 和 JD-IntelliJ
去官网 : http://jd.benow.ca/ 找到 JD-Eclipse 和 JD-IntelliJ,下载,前者安在eclipse上,后者安在as上.
- 【uva】1220 Party at Hali-Bula
1. 题目描述公司里有$n, n \in [1, 200]$个人,他们间的关系构成树状结构.除老板外,每个员工都有唯一一个直属上司,要求从中选择尽量多的人,但是不能同时选择员工和他的直属上司,问最多能 ...
- grep/awk/sed 或者 并且 否定
Grep 'OR' Operator Find all the lines in a file, that match any of the following patterns. Using GRE ...
- hdu 4856 Tunnels (bfs + 状压dp)
题目链接 The input contains mutiple testcases. Please process till EOF.For each testcase, the first line ...
- R语言 rwordseg包的下载
在CRAN中没有,如果通过R下载经常会出错,使用以下地址下载后加载本地包 http://R-Forge.R-project.org/bin/windows/contrib/3.0/Rwordseg_0 ...
- 多态and接口
一.多态 1.什么是多态? 解析:不同的对象对于同一个操作,做出的响应不同 具有表现多种形态的能力的特征 2.使用多态的优点 解析:为了实现统一调用 一个小例子:<父类类型作为参数> 父类 ...