抓娃小白手
2017-02-22 14:20
实现类 对象名 = new 类名
接口 对象名 = new 类名
有什么区别?
多写几个类实现接口,在实现类中分别写几个接口中没有的方法,然后使用
接口 对象名 = new 类名;
类名 对象名 = new 类名;
实例化对象调用方法,你就会发现使用接口 对象名 = new 类名; 方式实例化的对象只能调用接口中有的方法,而不能调用类中特有的方法。而使用类名 对象名 = new 类名;方式创建出来的对象可以调用所有的方法
使用接口编程的好处是统一规范化。
你会发现无论多少个实现类,无论这些实现类有什么不同,使用接口 对象名 = new 类名; 方式实例化对象都可以调用接口中定义的方法,
[借用百度知道的提问]
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 类名; 的形式?
求大神~~~
Java入门第二季 升级版
530553 学习 · 6091 问题
相似问题