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

来源:-

抓娃小白手

2017-02-22 14:20

实现类 对象名 = new 类名

接口    对象名 = new 类名

有什么区别?

写回答 关注

2回答

  • 幸福是可积的
    2017-02-25 19:50:59
    已采纳

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

    接口 对象名 = new 类名; 

    类名 对象名 = new 类名;

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

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

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

    抓娃小白手

    懂了 谢谢

    2017-02-25 20:27:14

    共 1 条回复 >

  • 抓娃小白手
    2017-02-22 14:21:03

    [借用百度知道的提问]

    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 类名; 的形式?

    求大神~~~

    抓娃小白手

    不太理解这用法的区别

    2017-02-22 14:21:42

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530646 学习 · 6091 问题

查看课程

相似问题