接口是多态?(设计模式,强烈推精)

l171147904 2009-10-17 09:58:12
A:
从中文字面理解多态 ,也就是同一个事物出现多种不同的形态,“多”也就是指不止一个。
继承:2个子类有不同的实现,但它本质是一类,也就是同一种东西,1类事物针对特定问题出现了2个不同的形态,所以这个是多态。
接口:2个实现类并不能保证是同一类事物,所以实现类有可能是2类事物针对特定问题出现了2个不同的形态,这个就是常态


(这里有个问题,接口 可继承 接口)
B:
多态分为三种:
1: 方法多态
2: 类多态
3:接口多态

方法多态:
有点类似于重载 (本人 不认同,重载已经 定义死 执行方向了;重写,到是OK,,,基于 父子类的 override)

类多态:
就继承关系 (OOP 三特性:封装,继承,多态,既然多态包含继承,为什么要单独出来?)


期待高手 解疑!!!
...全文
864 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
zshaccp 2010-09-18
  • 打赏
  • 举报
回复
来学习下
JiuHuVScs 2009-10-21
  • 打赏
  • 举报
回复
菜鸟顶!
oneatree 2009-10-19
  • 打赏
  • 举报
回复
mark
l171147904 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 sp1234 的回复:]
对于许多人可能有一种与自然相反的习惯,就是在讨论面向对象设计的时候总是摆脱不了编程术语,似乎不去考虑什么内存Struct、Address、函数之类的编程概念,就无法去抽象和设计了。而OO就是要你把自己放在不懂计算机的位置上去。
[/Quote]

经典。。。
flyerwing 2009-10-18
  • 打赏
  • 举报
回复
多态:编译是多态;
运行时多态。
可能是这样了。
baserker 2009-10-18
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 sp1234 的回复:]
对于许多人可能有一种与自然相反的习惯,就是在讨论面向对象设计的时候总是摆脱不了编程术语,似乎不去考虑什么内存Struct、Address、函数之类的编程概念,就无法去抽象和设计了。而OO就是要你把自己放在不懂计算机的位置上去。
[/Quote]
返璞归真!
龙宜坡 2009-10-18
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 wartim 的回复:]
接口是定义
继承是手段
多态是结果
[/Quote]



总结的精辟!
  • 打赏
  • 举报
回复
对于许多人可能有一种与自然相反的习惯,就是在讨论面向对象设计的时候总是摆脱不了编程术语,似乎不去考虑什么内存Struct、Address、函数之类的编程概念,就无法去抽象和设计了。而OO就是要你把自己放在不懂计算机的位置上去。
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 l171147904 的回复:]
24 楼 漏字!

我不明白为什么要把继承独立出来说,多态还有抽象,虚法方-重写,接口,为什么他们也独立出来?

改:
我不明白为什么要把继承独立出来说,多态还有抽象,虚法方-重写,接口,为什么"不把"他们也独立出来?

想想这 多余。。。算了。。不想!
知道怎么 用就好!!!


[/Quote]

这就要搞懂什么是OOAD,什么是OOPL。那些编程术语,不是面向对象的本质概念,只是用来编程时才需要的雕虫小技。而OOAD不仅给机器使用,也给人类使用,它不需要设计者懂计算机编程,它不纠缠于具体编程时才用的那些概念。
xcholysun 2009-10-18
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
楼上的不明白,嘿嘿,我是个菜鸟倒是希望有人把这个给说清楚我也好多多的学习啊....
wartim 2009-10-18
  • 打赏
  • 举报
回复
接口是定义
继承是手段
多态是结果
24K純帥 2009-10-18
  • 打赏
  • 举报
回复
up..
boringame 2009-10-18
  • 打赏
  • 举报
回复
继承和多态怎么会是一回事呢?

继承可以不堕胎。。。

class A{
}
class B:A{
}
hangang7403 2009-10-18
  • 打赏
  • 举报
回复
继承:2个子类有不同的实现,但它本质是一类,也就是同一种东西,1类事物针对特定问题出现了2个不同的形态,所以这个是多态。
上面是楼主自己的多态定义,按照这个定义那当然多态包含继承,但去看看资料书,对多态的描述就是特指多个子类针对基类的同一个方法的不同实现。如果不同子类只是扩展自己的方法与属性,而对基类的方法用相同方法实现,就不存在多态的形态,这样不是有继承就有多态,也不应该得出多态包含继承的结论。
让爱延续 2009-10-18
  • 打赏
  • 举报
回复
呵呵 顶
jayqean 2009-10-18
  • 打赏
  • 举报
回复
都说得不错的
Carsick_Cars 2009-10-18
  • 打赏
  • 举报
回复
悔说话的哑巴 2009-10-18
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 wartim 的回复:]
接口是定义
继承是手段
多态是结果
[/Quote]
精辟
SlaughtChen 2009-10-18
  • 打赏
  • 举报
回复
知道怎么 用就好
加载更多回复(23)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧