1多态可以有属性,接口只有方法

2关键字不同,多态有静态多态(abstract)和动态多态(virtual),静态多态不能new()出自己,动态多态可以;多态中可以有自己的方法可设置不需要子类重写,接口则否,

3.基于上述两点发现,多态比接口更宽松,但有时由于接口的单一使得很使用明确,别人用起来很方便.多态显得太庞大.

根本不需要查看源代码是如何实现的,这就是多态的好处.

可以看 https://www.cnblogs.com/wl-blog/p/10361894.html 讲的什么时候用接口

我要问一个问题,喜鹊和老鹰都可以飞,这个飞的能力,我怎么来实现呢?

XXX答:“在父类Bird中添加一个Fly方法不就好了~~”

我再问:“好的,照你说的,企鹅继承父类Bird,但是不能企鹅不能飞啊,这样在父类Bird中添加Fly方法是不是不合适呢?”

XXX答:“那就在能飞的鸟类中分别添加Fly方法不就可以了吗?”

对,这样是可以,功能完全可以实现,可是这样违背了面向对象开放封闭原则,下次我要再扩展一个鸟类比如猫头鹰(Owl),我还要去源代码中看下Fly是怎么实现的,然后在Owl中再次添加Fly方法,相同的功能,重复的代码,这样是不合理的,程序也不便于扩展;

其次,如果我还要添加一个飞机类(Plane),我继承Bird父类,合适吗?

很显然,不合适!所以我们需要一种规则,那就是接口了,喜鹊,老鹰,飞机,我都实现这个接口,那就可以飞了,而企鹅我不实现这个接口,它就不能飞~~

好,接下来介绍一下接口如何实现多态~

最新文章

  1. AngularJS指令
  2. PPT演示快捷键
  3. hive 搭建
  4. 2014-2015 ACM-ICPC, NEERC, Moscow Subregional Contest D. Do it Right!
  5. ASP.NET MVC利用ajax把action的JavaScript注册到页面并执行
  6. [IOS+PHP Jason格式的发送与解析]
  7. Java实现UDP之Echo客户端和服务端
  8. 在Mac中如何显示和隐藏文件
  9. Beginner’s Guide(开始者向导)
  10. keyCode 与charCode
  11. [置顶] a+=1/a=+1/a-=1区别-c语言
  12. FastCGI中文规范
  13. 导入java项目时出现红色叹号问题的解决
  14. Win10常见问题记录
  15. js的closures(闭包)
  16. 深度学习中的batch_size,iterations,epochs等概念的理解
  17. Easyui中 alert 带回调函数的 消息框
  18. 一起做OJ-环境搭建
  19. ffmpeg查看音频文件信息
  20. JS密码校验规则前台验证(不能连续字符(如123、abc)连续3位或3位以上)(不能相同字符(如111、aaa)连续3位或3位以上)

热门文章

  1. Selenium python爬虫
  2. PPP协议 PAP认证
  3. vue开源Element UI表单设计及代码生成器
  4. C++ string 常用函数
  5. STM32串口遇到的一个问题
  6. linux入门系列8--shell编程
  7. git 删除和复制远程分支 储藏
  8. Vue中的nextTick()浅析
  9. Centos7 搭建Grafana+Jmeter+Influxdb 性能实时监控平台
  10. 有关lightning页面中页面加载时间计数器颜色分别表示的时间范围的问题