java为什么要用接口声明对象而具体类创建对象?

一 首先接口不能实例化对象这是毋庸置疑的 !!!!
原因:1.实际语义是实例化一个实现该接口的匿名内部类,接口本身是用来抽象的,实例化接口没有意义。
            2.实例化实际意义是在jvm的堆中开辟出一块内存空间,比如Student s = new Student();此处声明Student对象s,并且实例化一个Student对象,实则是在堆中开辟出一块空间来存放Student对象,s则是指向这块空间,也就是内存中的一块地址。这块地址中所存放的值就是我们这个Student对象的一些属性。而接口是抽象,没有具体方法的实现,但是有静态变量。
           3.本人认为 类继承实现了接口就类似于子类继承父类(因为你继承接口的时候把方法重写了,就类似于直接季继承了父类,在这理解为向上转型。) 而且new dd()可以理解为一个匿名类,这样的话返回的值向上兼容,这样的话,接口引用c就指向了具体的实现接口的对象,多态的体现。


这样的好处在于通过接口c来调用的方法可以屏蔽掉具体的方法实现。换而言之,我只需要知道c要做什么,而不需要知道c怎么做。。

也就是在JAVA编程中经常用到的接口回调,即面向接口的编程

更为重要的一点是Collection c只是引用,是一个指向具体实现类的引用。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值