面象对象的基本原则就是针对抽象编程,而不是针对实现编程,为了取得更大的灵活性. 而java,C#等面向对象语言支持抽象的机制为 抽象类和接口,接口拥有更大的灵活性. 我举一个小例子,不太完善,希望能给你一些启发. 比如我们要做一个购书系统,购书后,需要进行打折,我们就来实现打折这一部分...
分类:
其他好文 时间:
2014-06-15 21:45:38
阅读次数:
256
接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低耦合的设计思想。接口——注意事项接口不能被实例化接口中的所有方法都不能有主体,如voidaaa(){};抽象类中抽象方法不能有主体,而非抽象方法可以有主体!!!一个类可以有多个接口接...
分类:
其他好文 时间:
2014-06-15 20:51:07
阅读次数:
123
类描述类的实例化类继承抽象类与具体类对象组合方法—委托(delegation)在委托方式下,有两个对象参与处理一个请求,接受请求的对象将操作委托给它的代理者(delegate)一个窗口拥有一个矩形,而不是一个窗口就是一个矩形。窗口现在必须显式的将请求转发给它的矩形实例,而不是像以前它必须继承矩形的操...
分类:
其他好文 时间:
2014-06-10 12:21:01
阅读次数:
228
工厂模式其实不是太深奥,/*为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类*/简单工厂模式就是把实例化的工作封装到一个类中工厂方法和简单工厂的不同在于,用抽象类封装工厂类工厂方法是抽象工厂的特例,工厂方法中生产一个产品,而抽象工厂生产一系列相关的产品。下面是一个例子,Monke...
分类:
其他好文 时间:
2014-06-10 11:45:14
阅读次数:
243
抽象类和抽象方法:一般将父类定义为抽象类,需要使用这个父类进行继承与多态处理。我们使用abstract关键字来定义抽象类,使用abstract关键字定义的方法称为抽象方法,实际上抽象类除了被继承之外没有任何意义,抽象类中的某些行为在没有特定的运行时不会有任何的意义,抽象的类代表此类必须要被exten...
分类:
编程语言 时间:
2014-06-10 11:33:35
阅读次数:
250
Java中的接口不仅仅是一种更纯粹的抽象类,它的目标比这更高。因为接口是根本没有任具体实现的。也就是说,没有任何与接口相关的存储;因此,也就无法阻止多个接口的组合。这一点是很有价值的,因为你有时候需要去表示“一个X是一个a和一个b以及一个c”。在C++中,组合多个类的接口的行为被称作为多重继承。它可...
分类:
编程语言 时间:
2014-06-10 09:30:40
阅读次数:
271
本文将介绍抽象类、接口和一种称为契约式编程的技术。使用这些OPP机制,所编写的代码就不限于只能计算或者输出内容了。这些机制能够在概念层次上定义类之间交互作用的规则,也为应用程序的扩展和定制提供了基础。
分类:
Web程序 时间:
2014-06-09 20:11:33
阅读次数:
270
/* * 环境(Context)角色:持有一个Strategy类的引用。 *
抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。 *
具体策略(ConcreteStrategy)角色:包装了相关的算法或...
分类:
其他好文 时间:
2014-06-09 18:50:59
阅读次数:
208
C++ Delegate1.函数绑定 成员函数绑定(传入this指针
和函数指针)模板控制返回值和传参2.将绑定增加抽象类,使得其能插入通用容器3.Delegate类通过模板函数进行绑定函数的构造,减少需要填入的参数EventManager1.一个消息对应多个注册消息的类对象,一个类对象中可以有多个...
分类:
其他好文 时间:
2014-06-09 13:03:03
阅读次数:
226
Calendar类是个抽象类,因此本身不能被实例化,然而却创建了Calendar
的对象,但并不是抽象类可以创建对象。。。。。其实这个对象并不是Calendar
自身实例,而是其子类实例,这是在getInstance方法内部其实是实例化了一GregorianCalendar 对象并返回了,这里还反映...
分类:
其他好文 时间:
2014-06-09 12:59:09
阅读次数:
268