java接口与类是什么关系?都说接口不能被实例化,但是很多接口可以直接用,比如
比如AudioClipa=newApplet().getAudioClip(...);ResultSetset=xxx.executeQuery("...");都是接口的...
比如AudioClip a=new Applet().getAudioClip(...);
ResultSet set=xxx.executeQuery("...");
都是接口的对象啊,那所有人都说接口不能被实例化,但是很多类似的语句可以得到接口的对象。。很多年也没搞懂:接口到底和类是什么区别,接口的用处是什么。谢谢解答,真给讲明白了可加分,加多少开个数。。嘿嘿嘿
三位,不懂,欢迎继续解释 展开
ResultSet set=xxx.executeQuery("...");
都是接口的对象啊,那所有人都说接口不能被实例化,但是很多类似的语句可以得到接口的对象。。很多年也没搞懂:接口到底和类是什么区别,接口的用处是什么。谢谢解答,真给讲明白了可加分,加多少开个数。。嘿嘿嘿
三位,不懂,欢迎继续解释 展开
展开全部
我也没怎么搞懂啊 相互探讨吧 下面是别人说的,看一看也许有帮助:
接口也是可以实例化的,但是接口的实例化其实更倾向于逻辑性的操作,
打个比方,我有一个接口名为水果,里面有“榨汁”这个方法,而我某部分程序的逻辑行为就是调用某个水果实例的“榨汁”方法。但是如果水果没用通过注入(即在某段程序将某种实现了水果接口的类的实例,比如苹果什么的实例,赋值给这个接口的实例),是不具有现实功能的,即该代码片段仅仅是一个行为逻辑。
在你追问的的问题中,该接口的实例化,其实是匿名地临时地创造了具有某个接口功能的类的实例,往往是我们需要实现某种功能,但这个类的实现,并不具有现实意义,也不便于维护和管理,的一种妥协行为,某种意义上破坏了面向对象的特性,但是方便了编程人员。你可以看做他其实是某个实现了该接口的类的实例,而不是这个接口的实例。
这一个讲的好像更好:
接口可以实例化
一般对象比如有个具体的类Person已定义好,要实例化它, 采取的语法是 Person objPerson = new Person();
但接口(如IConnection)不能这么做,其不能直接New 自己,如 IConnection objIConnection = new IConnection(),
这就是说"照例不可以生成接口的对象"的含义.
但面向对象都具有多态,可以向上转型, 比如某个类实现了该接口,如类Connection实现了该接口,则Connection类的
实例化对象可以给IConnection接口. 如 IConnection objIConnection = new Connection()
然后编程都基于接口进行操作,这样脱离了具体的类的实现,在某些场合就更灵活和易于扩充.
把变的东西抽象出来了,成了接口,反倒就让代码相对固定了,能适应变化的情况.
接口不能实列化,但是可能通过某些类创建接口的对类
看上面所说接口不能实例化,这是不容置疑的
只是可以这样用:
实例化对象可以给IConnection接口. 如 IConnection objIConnection = new Connection()
接口不可以实例化。但是接口对象可以指向它的实现类对象。
接口也是可以实例化的,但是接口的实例化其实更倾向于逻辑性的操作,
打个比方,我有一个接口名为水果,里面有“榨汁”这个方法,而我某部分程序的逻辑行为就是调用某个水果实例的“榨汁”方法。但是如果水果没用通过注入(即在某段程序将某种实现了水果接口的类的实例,比如苹果什么的实例,赋值给这个接口的实例),是不具有现实功能的,即该代码片段仅仅是一个行为逻辑。
在你追问的的问题中,该接口的实例化,其实是匿名地临时地创造了具有某个接口功能的类的实例,往往是我们需要实现某种功能,但这个类的实现,并不具有现实意义,也不便于维护和管理,的一种妥协行为,某种意义上破坏了面向对象的特性,但是方便了编程人员。你可以看做他其实是某个实现了该接口的类的实例,而不是这个接口的实例。
这一个讲的好像更好:
接口可以实例化
一般对象比如有个具体的类Person已定义好,要实例化它, 采取的语法是 Person objPerson = new Person();
但接口(如IConnection)不能这么做,其不能直接New 自己,如 IConnection objIConnection = new IConnection(),
这就是说"照例不可以生成接口的对象"的含义.
但面向对象都具有多态,可以向上转型, 比如某个类实现了该接口,如类Connection实现了该接口,则Connection类的
实例化对象可以给IConnection接口. 如 IConnection objIConnection = new Connection()
然后编程都基于接口进行操作,这样脱离了具体的类的实现,在某些场合就更灵活和易于扩充.
把变的东西抽象出来了,成了接口,反倒就让代码相对固定了,能适应变化的情况.
接口不能实列化,但是可能通过某些类创建接口的对类
看上面所说接口不能实例化,这是不容置疑的
只是可以这样用:
实例化对象可以给IConnection接口. 如 IConnection objIConnection = new Connection()
接口不可以实例化。但是接口对象可以指向它的实现类对象。
展开全部
Applet是类不是接口吧,至于你说的这种情况,com.xxx.Applet和com.yyy.Applet可是不一样的,一个可能是类一个可能是接口,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
接口不能被实例化,只能被调用,就像淋浴喷头一样,必须将喷头接上水管才可以,总不能拿水管淋浴吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己如果想实例化,要有行动(方法)和属性,类有默认的构造方法,所以当然可以自己实例化了。但接口没有构造方法,抽象方法也没有实体,怎么办,只能通过其他实现类看似继承的实现了他,然后实现类的实例向上转化成接口的对象实例。所以,你看到的很多接口可以直接用,其实就是接口创建了对象,而他的实例被其他类通过方法完成了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的这个问题呀,很深奥,我根本就不懂,所以不会打
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询