一、重写(override)和重载(overload)的区别二者除了名字相似,其实没什么联系范围不同:重写发生在同一个类的不同方法之间。重载发生在父类和子类自荐。前提:重写要求:方法名相同,参数列表不同,对于返回值类型不要求相同。重载要求:方法名形同,参数列表也相同。重载是实现多态的关键,注意如果父...
分类:
编程语言 时间:
2014-08-09 21:21:19
阅读次数:
306
设计模式-使用php实现工厂方法模式【概要】创建型模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使用一个类的实例化延迟到其子类【GOF95】【结构图】【主要角色】抽象产品(Product)角色:详细产品对象共同拥有的父类或接口详细产品(Concrete Pro...
分类:
Web程序 时间:
2014-08-09 21:04:19
阅读次数:
320
在PHP中不能定义重名的函数,也包括不能再同一个类中定义重名的方法,所以也就没有方法重载。单在子类中可以定义和父类重名的方法,因为父类的方法已经在子类中存在,这样在子类中就可以把从父类中继承过来的方法重写。
分类:
其他好文 时间:
2014-08-09 04:55:57
阅读次数:
340
桥接模式:
(1),继承很多情况下会带来麻烦,比如:对象的继承关系在编译时就定义好了,所以无法在运行时改变从弗雷继承的实现。子类的实现与它的弗雷有非常紧密的依赖关系,以至于弗雷视线中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类代替。这种依赖关系限制了灵活性并最终限制了复用性。
(2),合成/聚合服用原则(C...
分类:
其他好文 时间:
2014-08-09 00:16:46
阅读次数:
403
序列化其实就是将一个对象的所有相关的数据保存为一个二进制文件(注意:是一个对象)而且与这个对象相关的所有类型都必须是可序列化的所以要在相关类中加上 [Serializable]特性对象类型包括:对象本神包含的类型,父类拥有需要的对象之后:1.将对象转换为二进制数据 使用专门的对像进行转换 Binar...
分类:
Web程序 时间:
2014-08-08 23:39:26
阅读次数:
311
1.面向对象的3要素。
2.面向对象开发的6大原则。
1.单一职责原则
应该有且仅有一个原因引起类的变更。
2.里氏替换原则
只要父类能出现的地方,其子类就应该能出现。也就是用子类替换父类后,保证程序照样运行。
3.依赖倒置原则
面向接口编程。
4.接口隔离原则
接口细化,也就是接口中的方法要尽量少。
5.迪米特法则
也称为最少知识原则,其定义为:一个对象应当对其...
分类:
编程语言 时间:
2014-08-08 18:17:16
阅读次数:
434
我将成员变量称之为类的属性, 将成员函数称之为类的接口关于子类继承父类, 比较让我蛋疼的用法就是在子类中直接使用父类的成员变量, 且不说父类完全有可能不是自己设计的, 就算是自己设计的, 也许已经过了N久了, 再次使用父类里面的属性时都要想一下这个属性到底是干什么用的.比如当时写了一个类:Paren...
分类:
其他好文 时间:
2014-08-08 12:22:55
阅读次数:
176
一个类能够继承(inherit)还有一个类的方法(methods),属性(property)和其他特性。当一个类继承其他类时,继承类叫子类(subclass),被继承类叫超类(或父类,superclass)。在 Swift 中,继承是区分「类」与其他类型的一个基本特征。在 Swift 中,类能够调用...
分类:
其他好文 时间:
2014-08-08 12:20:05
阅读次数:
342
在 C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继承的时候,必然会由于试图调用构造函数、析构函数而导致编译错误。
template
class A
{
friend T;
private:
A(...
分类:
编程语言 时间:
2014-08-08 02:01:45
阅读次数:
276
qt学习 (三):鼠标图标改变当你进入一个美好的qt软件场景,比如游戏,电脑的黑白图标会让程序逊色不少,1改图标要加光标的头文件,2 载入光标图,3 再设置改光标就可以了1在头文件中加 #include //光标类的父类//再在public成员中声明换的函数void keyPressEvent(Q....
分类:
其他好文 时间:
2014-08-08 01:40:44
阅读次数:
470