JAVA中A a=new B()的意思;

A是接口B实现A的接口那a可以调用的方法是调用A的方法还是B的方法?还有为什么不直接写Ba=newB();... A是接口 B实现A的接口 那a可以调用的方法是调用A的方法还是B的方法? 还有为什么不直接写 B a=new B(); 展开
 我来答
大雁南飞
推荐于2016-04-12 · 知道合伙人互联网行家
大雁南飞
知道合伙人互联网行家
采纳数:1660 获赞数:26106
编码爱好者

向TA提问 私信TA
展开全部
JAVA中A a=new B()的意思是将A的引用指向B的对象,是向上造型,java多态的一种表现。
父类的引用指向子类的对象叫做向上造型,一个类的对象可以向上造型的类型有:父类的类型及其实现的接口类型。
湖南杰杰
2014-04-06 · 超过13用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:30.1万
展开全部
接口只是为了定义一上类的标准,并没有具体的实现代码,是取一些对象的共同特性进行抽象,比如A接口有print方法,那么实现A接口,就必需实现print方法,接口是不能实例化的,必需new具体的实现类,比如:
interface A{
void cry{};
}
class Cat implements A{
public void cry(){
System.out.println("CAT CRY");
}
}

class Dog implements A{
public void cry(){
System.out.println("DOG CRY");
}
}

具体调用代码:
A a=new Cat();
a.cry();
a=new Dog();
a.cry();

如上代码,不管你的实现类是cat还是dog,a都不管,只需要调用cry即可,希望以上回答可以帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1742466500
2014-04-06
知道答主
回答量:18
采纳率:0%
帮助的人:7.3万
展开全部
a调用的是B的方法,因为new B()创建的是B的对象。
至于为什么要写成 A a = new B();是因为扩展性能比 B b = new B()好吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ahcc08
推荐于2016-06-09 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51939
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部
这是JAVA里的多态
一般出现这样的话,都是这样运用的:
A a=new B();
A a=new C();
A a=new D();
这样只要定义一个a,就能生成很多对应的子类
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Yimik
2014-04-06 · TA获得超过435个赞
知道答主
回答量:91
采纳率:0%
帮助的人:82.3万
展开全部
接口内部没有方法的实现,调用方法自然是B类的方法,因为B类实现了接口,定义了方法的实现,好处很多,具体你可以参考百度百科
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式