黑马程序员技术交流社区
标题:
多态到底如何理解
[打印本页]
作者:
IPvL9h
时间:
2015-10-30 23:40
标题:
多态到底如何理解
事到如今,对于多态的理解还是很迷茫。
到底什么时候应该用多态?什么时候用?
上课一有关于多态的创建方式,虽然懂得如何创建,但总是感到心里没有底。
求解答
作者:
260744042
时间:
2015-10-31 13:46
1、有继承关系;
2、子类有重写父类的方法;
3、父类引用指向子类对象,并调用这些重写的方法时,就产生了多态
作者:
xiexie758
时间:
2015-10-31 18:24
首相想到有前提:有子类,或者被实现了。
其次:多态就父类或者接口的引用(Person(父类) p(p是引用)=new Student()(子类))直接指向子类新建的实例。
限制:就是不能调用子类本身特有的方法。
作者:
championjx
时间:
2015-11-2 13:39
本帖最后由 championjx 于 2015-11-2 13:57 编辑
我是这么理解的
话说有愚公要移山,假设没人帮助愚公,那他挂了的时候也没移走,但是他有无穷尽的子孙也在移山,而随着时代的发展,使用的工具也在进化
class 愚公移山
{
public static void main(String[] args)
{
愚公 愚 = new 愚公();
//愚公自己移山
人工移山(愚);
//愚公挂了,他儿子帮着移山,新工具
愚 = new 儿子();
人工移山(儿子);
//愚公儿子挂了,孙子接着移山,新工具
愚 = new 孙子();
人工移山(孙子);
//谁也不知道要几辈,用何种方法才能移走山,所以不管接下来谁移山,用什么方法,都用愚公来指向 //上文中的“几辈,何种方法”就是功能的扩展,可能是已存在的,正在实现的,未想好的需求
}
public static void 人工移山(愚公 愚公)
{
.....
}
}
//接口:移山功能
interface 移太行山
{
public abstract void 移山();
}
class 愚公 implements 移太行山
{
public void 移山()
{
System.out.println("用小铲子");
}
}
class 儿子 extends 愚公 implements 移太行山
{
public void 移山()
{
System.out.println("用大锄头");
}
}
class 孙子 extends 儿子 implements 移太行山
{
public void 移山()
{
System.out.println("挖掘机");
}
}
作者:
冰霜之卅
时间:
2015-11-2 20:53
多态就是说话说一半 ,,,等你问道跟前了问他 他才给你说是什么。。(很贱吧- -)。
作者:
北极的男娃
时间:
2015-11-2 21:24
篮子的那个例子很好吧 一般都用在参数声明上
作者:
小小鑫
时间:
2015-11-2 21:59
父类引用指向子类对象
作者:
Sayman
时间:
2015-11-2 23:01
爸爸用儿子的东西
作者:
zhengtuwl
时间:
2015-11-2 23:15
看回复,我怎么感觉整反了?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2