黑马程序员技术交流社区
标题:
跪求大神传授多态哟
[打印本页]
作者:
0racle
时间:
2015-7-1 21:57
标题:
跪求大神传授多态哟
面向对象的特性封装继承多态,前两者都感觉差不多了。但抽象类与接口有点晕。有谁能解决我的疑惑,最好有一个例子的最好!多谢多谢!:hug:
作者:
yan019369
时间:
2015-7-1 22:41
可以简单的理解为接口是抽象类的特殊情况,而抽象类是继承的特殊情况,即接口《抽象类《继承。
作者:
sophitia
时间:
2015-7-1 22:51
本帖最后由 sophitia 于 2015-7-1 22:54 编辑
接口里面全部都是抽象方法 默认方法前会有abstract 因此不能NEW 对象 只能实现(implements)
抽象类里也有抽象方法 但是可以有非抽象方法 抽象类的作用一般为(适配器) 因为接口中有非常多的抽象方法 但是我们有时候只需要其中的一个或者几个 那么应该怎么办呢?用抽象类实现接口 在用子类继承抽象类 那么只要重写(OverLoad)抽象类中方法即可 是不是觉得很有用处呢?
例如(For example)
作者:
453203489
时间:
2015-7-2 04:12
接口你可以想成你电脑上的USB接口, 只是一种用作规范的东西, 你的U盘可以插, 你的数据线可以插, 需要USB供电的东西都可以插, 只要你的插头满足我定义的规格。 我预定的规格,就是接口。
抽象类就是你上面哪些可以插USB的插头在生产出来的时候的一种设定, 或者说是一种目标。 例如,U盘, 我要的功能就是数据传输,轻量的供电。 但是不同的U盘生产商生产的U盘不一样, 有的是塑料的, 有的是铁的, 有的对电流要求大一点, 有的小一点。 但是这些都是U盘, 也可以说都实现了U盘这个抽象类。
作者:
杨基米德
时间:
2015-7-2 06:31
你可以这么理解
普通类的实例化:
Zi z=new Zi();
相当于将一个新的Zi类的对象的地址赋值给Zi类的对象z
多态类的实例化:
Fu f =new Zi();
相当于将一个新的Zi类的对象的地址赋值给Fu类的对象
而多态只是一个新的规定,能让多态实例化的一种定义~
不知道我这么说你是否理解~
作者:
yedong313
时间:
2015-7-2 06:45
通俗理解,比如鸟类是个抽象类,鸟类有翅膀、羽毛等属性,现在你想要定义一大批的鸟类的实体类,如企鹅类、鸭子类、天鹅类,这些鸟类实体类都具有鸟类的所有属性,但他们在鸟类所有属性的基础上又有自己的属性,你就可以以这些鸟类实体类来继承鸟类的抽象类,这样这些实体类获得了鸟类所共有的属性,而你可以自己添加他们自己特有的属性,大大减少了编程人员的工作量。 接口其实和抽象类差不多,如果说抽象类是“is a”的关系,接口就是“like a”了,其间的理解很容易。
作者:
改变
时间:
2015-7-2 08:33
多态即一种事物的多种形态,例如:猫可以叫为动物
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2