黑马程序员技术交流社区

标题: 搞的自己都头晕 [打印本页]

作者: abc张强8    时间: 2014-6-30 20:42
标题: 搞的自己都头晕
本帖最后由 abc张强8 于 2014-7-1 23:06 编辑

假设A是一个接口,B是实现这个接口的类。有代码:A a=new B(); 为...假设A是一个接口,B是实现这个接口的类。有代码:A a=new B(); 为什么写成这样,而不直接写成:B a=new B(); 那样有什么好处?
作者: yinxjfly    时间: 2014-6-30 20:58
面相接口编程,多态嘛,如果一个接口有很多个实现类,这样写接受的范围更广!
作者: rekirt    时间: 2014-6-30 21:07
有些东西需要我们先记住,等你记得多了自然就明白为什么了,
作者: 夏季熬成了秋    时间: 2014-6-30 21:12
多态   增加了扩展性
作者: ahuhxl    时间: 2014-6-30 21:12
父类引用指向子类对象
作者: 汉谟拉比    时间: 2014-6-30 21:25
典型的多态哦,接口的引用指向子类的对象,实现多个类时候这样做可以提高程序的扩展性;不过也可以像你那样做
作者: houyudong    时间: 2014-6-30 22:06
这个事java的多态表现形式,就像是一只猫,我们可以说猫是动物,但是反过来我们说动物是猫就明显不对了,具体可以去查查多态,我也给你说不太清除,打字太费力了
作者: abc张强8    时间: 2014-7-1 23:05
houyudong 发表于 2014-6-30 22:06
这个事java的多态表现形式,就像是一只猫,我们可以说猫是动物,但是反过来我们说动物是猫就明显不对了,具 ...

这回我看懂啦
作者: cat73    时间: 2014-7-1 23:12
B实现了A C也实现了A D也实现了A
A内定义了test方法
那你就可以简单地
A b = new B();
A c = new C();
A d = new D();
test(b);
test(c);
test(d);

//只需要一个方法就可以同时接受三种不同的数据类型并调用内部方法
void test(A a){
a.test();
}
作者: 卞新浩    时间: 2014-7-1 23:14
你多看一下多态   就明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2