JAVA中A a=new B()的意思;
A是接口B实现A的接口那a可以调用的方法是调用A的方法还是B的方法?还有为什么不直接写Ba=newB();...
A是接口 B实现A的接口 那a可以调用的方法是调用A的方法还是B的方法? 还有为什么不直接写 B a=new B();
展开
6个回答
展开全部
接口只是为了定义一上类的标准,并没有具体的实现代码,是取一些对象的共同特性进行抽象,比如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即可,希望以上回答可以帮到你。
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即可,希望以上回答可以帮到你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a调用的是B的方法,因为new B()创建的是B的对象。
至于为什么要写成 A a = new B();是因为扩展性能比 B b = new B()好吧!
至于为什么要写成 A a = new B();是因为扩展性能比 B b = new B()好吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是JAVA里的多态
一般出现这样的话,都是这样运用的:
A a=new B();
A a=new C();
A a=new D();
这样只要定义一个a,就能生成很多对应的子类
一般出现这样的话,都是这样运用的:
A a=new B();
A a=new C();
A a=new D();
这样只要定义一个a,就能生成很多对应的子类
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
接口内部没有方法的实现,调用方法自然是B类的方法,因为B类实现了接口,定义了方法的实现,好处很多,具体你可以参考百度百科
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询