为了账号安全,请及时绑定邮箱和手机立即绑定

java中实现类实现了接口,创建对象为什么还要写成 接口 对象名 =new 类名?

实现类 对象名 = new 类名

接口    对象名 = new 类名

有什么区别?

正在回答

2 回答

多写几个类实现接口,在实现类中分别写几个接口中没有的方法,然后使用

接口 对象名 = new 类名; 

类名 对象名 = new 类名;

实例化对象调用方法,你就会发现使用接口 对象名 = new 类名; 方式实例化的对象只能调用接口中有的方法,而不能调用类中特有的方法。而使用类名 对象名 = new 类名;方式创建出来的对象可以调用所有的方法

使用接口编程的好处是统一规范化。

你会发现无论多少个实现类,无论这些实现类有什么不同,使用接口 对象名 = new 类名; 方式实例化对象都可以调用接口中定义的方法,

3 回复 有任何疑惑可以回复我~
#1

抓娃小白手 提问者

懂了 谢谢
2017-02-25 回复 有任何疑惑可以回复我~

[借用百度知道的提问]

Interface B{
public void show();

}
class A implements B{
public void show(){
System.out.println("123");

}

}
main(){
B b =new A(); //正确的应该是这样的

System.out,println(b.show());

}

我想问的是:把上面的B b =new A(); 改成 A a = new A(); 上面的A也实现了接口B,为什么不能直接创建A的对象呢? 并且我用 A a = new A();编译过,同样能打出123 

为什么一定要是: 接口 对象名 = new 类名; 的形式, 
而不能是: 类名 对象名 = new 类名; 的形式?

求大神~~~

0 回复 有任何疑惑可以回复我~
#1

抓娃小白手 提问者

不太理解这用法的区别
2017-02-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

java中实现类实现了接口,创建对象为什么还要写成 接口 对象名 =new 类名?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信