摘要: 一、“接口”初步:从OOP设计角度来分析,“接口”是一个很特殊的“类”,特殊之处在于:1)不能为接口中定义的方法添加关键字(只允许是public)。2)可以定义事件/方法/属性,但都无法实现(只能让实现类去实现)。以上这些限制了接口的应用范围——意味着接口只是作为一个对类的契约而存在,谈不上“代码复用”(因为接口自身不能定义方法,自然实现类无法调用它们,也就不构成重载/重写的概念了),也根本不存在“继承”的概念。因此“接口”的关键字是Implement而不是Inherit(在C#中则都是英文状态的冒号)。由接口自身的定义,我们联想到最简单的接口应用就是强制某个类必须具备某种方法,譬如说我要设计 阅读全文
posted @ 2012-11-19 13:38 Serviceboy 阅读(772) 评论(0) 推荐(2) 编辑
摘要: 面向对象程序设计最基本的一个特点在于类可以继承——即通常我们所谓之“代码复用”原则优先。继承可以来自一个普通类,也可以来自一个抽象类,那么哪个更好一些呢?或者继承自普通类和抽象类在应用上有何区别呢?今天主要来讨论这个问题。一、继承自普通类+virtual方法:譬如我设计了一个点的类(Point),这个“点”类其中包含X,Y两个基本公共属性。那么以后随着需求增加我或许要定义一个三维的店DPoint,由于从数学角度分析,三维坐标比二维坐标只是多了一个Z,其余属性基本相似。因此直接可以通过继承二维坐标的Point类扩展一个Z属性即可。进一步考虑。如果我已知一个点,输入另外一个点的坐标或者实体类,求该 阅读全文
posted @ 2012-11-19 13:38 Serviceboy 阅读(685) 评论(0) 推荐(1) 编辑