为什么要用接口而不用抽象类呢这是我去面试的题
解决方案 »
- 真的是相当恼火啊
- asp.net mvc 路由设置
- JavaScript同时调用多个C#后台方法问题
- 如何导出成excel
- ==================强烈要求CSND换回原版=================
- 求AA0000到AZ9999直接的所有值,高分
- 为什么添加不到数据库???程序如下:分不多,进来看看,谢谢
- asp.net 执行存储过程导致sqlserver停止服务
- 文件上传(上传到服务器硬盘),怎样一次上传多个文件!!!!!
- 请问搞.net开发用什么本比较好?
- 高手请进~如何获取其他IE窗口鼠标选择的信息,并且当前IE总是置顶?
- asp.net 用户输入的验证一般用什么好?
先用接口确定系统行为,然后用Mock类进行对接口的实现
在这个时候根本就没抽象类什么事情
然后将具体化,则出现很多很多具体类,出现很多重复代码
将其提炼出抽象类简化代码所以说这两个东西是各有用处,合适的时候用合适的东西may i helps
值类型使用接口,在放入集合类型中时,可以减少值类型的拆箱操作
接口 可以实现多继承,可以被多个类型重用抽象类 更具体聚集的描述了一种抽象
比如 鸟 是被抽象
而 I飞 则定义为接口较好,因为 鸟可以实现该接口,飞机也可以实现改接口。
如果要 操作 所有可以飞的对象 那么 用I飞作为参数 很好 而不是 为每个可以飞的抽象类定义一个重载 或者 直接 传递 “动物” 或者“物体”或者object
这样又把内部其他数据暴露了。
类继承--->子类完全继承父类特点
抽象类继承--->继承时抽象的部分不同的子类可以有不同的实现
接口继承--->所有成员在子类都可以有不同的实现至于为什么要用接口而不是抽象类
这要看二者适用的情况
当个性大于共性时,适合接口,如鸟和飞机,适合抽象出一个飞的接口
当共性大于个性时,适合抽象类,如老鹰和麻雀,适合抽象出一个鸟的父类
另外接口可以实现多重继承,这也是一个特点