|
上一节举了很多例子介绍了面向对象编程的思想,现在大多数中文/外语都是面向对象编程,因为它可以解决庞大项目难以维护的问题。
在面向对象编程中我们常常要创建一些类,然后创建类的很多实例让他们去工作。创建类或者说对类的设计是一门学问,也是一门艺术,更重要的是大部分设计经验来自于实践。
没有一个人在项目一开始就能设计出一个完美的后期不再修改的类。原因是我们有着奇思妙想的客户,有着跨平台等各种硬性需求,还有人们越来越懒惰或者说是追求完美的编程习惯。
那么上述问题是实际存在的,但是作为程序员最讨厌的就是修改,或者说不稳定的设计,对类的不断修改显得非常的不现实,不合理。这时候一个名词横空出世,那就是“继承”。
平时所说的“继承”往往说继承父辈的遗产,继承老爹的公司的管理,之所以这样说是因为他们之间有共性,所以我们可以拿继承公司的管理举个栗子!老爹经营了一辈子的公司,积累了大量的财富,最重要的是聚集锤炼了一大批人才,还有符合时宜的管理方法。那么老爹也有Over的时候,那就得需要后继有人啊,儿子理所当然的继承了公司的所有财产,业务,还有管理权。新官上任三把火,我得弄点跟老爹不一样的东西,我得修改点什么。修改也不能瞎折腾,公司的90%的运营模式都是合理的,在继承这些模式基础上,我做一些10%修改,来适应当下变幻莫测的经济形势,最终整个公司的运营仍然是成功的。
最终儿子继承了老爹的财富,公司的人才资源,大部分的运营模式,而不是说来了个儿子,要想大显自己的身手,必须得从零开始,把公司地基扒了,其实没有必要也不能这样做。
上面这个例子就说明了我们可以通过“继承”来实现在一件事的基础上做简单的修改。在面向对象编程中的“继承”的含义也如此,我们称呼“父类”和“子类”,或者叫做“基类”和“派生类”。
如果把“生物”当做基类,派生类可以是“动物”、“植物”;
如果把“动物”当做基类,派生类可以是“哺乳类”、“爬行类”、“鸟类”等;
如果把“交通工具”当做基类,派生类可以是“自行车”、“公交车”、“轿车”等。
就如我们的文章封面的关系图一样,如果给动物定义一个类的方法,叫做“移动”,那么其派生类对基类的“移动”这个方法做任何修改都可以,鸟类的移动可以是飞行,人类的移动可以是走路,鱼类的移动可以是游动。。。
下面是具体到C++代码的书写方式:class AnimalClass{ void Move()
{ }};class Fish : public AnimalClass{ void Move()
{
//游动的代码实现
}
};class Bird : public AnimalClass{void Move()
{
//飞行的代码实现
}
}; 下面是具体到虚幻脚本代码的书写方式:-----------------------------AnimalClass.ucclass AnimalClass;
function Move(){}-----------------------------Fish.ucclass Fish extends AnimalClass
function Move(){ //游动的代码实现
}-----------------------------Bird.ucclass Bird extends AnimalClass
function Move(){//飞行的代码实现
}
对应于类继承的功能还有很多,这篇文章只是讲一下有继承这么回事,后续内容请持续关注“风之神韵”的微信公众平台。
微信订阅号搜索“风之神韵”,关注随时获取更多教学信息。
http://i.youku.com/u/UMTE5MzA2NDA0 |
|