当前位置: 技术问答>java相关
高分请教一个概念性问题关于接口与构造函数方法?
来源: 互联网 发布时间:2015-05-12
本文导语: 为什么要引进接口的感念?因为它本身并不实现具体的功能只是提供几 中方法而已,我可以在我自己要用到的类里直接定义我用的方法不就可以了吗? 其二构造函数在什么时候被调用?在定义类的时候可以定义构造...
为什么要引进接口的感念?因为它本身并不实现具体的功能只是提供几
中方法而已,我可以在我自己要用到的类里直接定义我用的方法不就可以了吗?
其二构造函数在什么时候被调用?在定义类的时候可以定义构造函数,也不可以不定义,也可以定义多个构造函数?对吗?如果定义多个构造函数那他们又是在什么时候被调用?在类的继承中构造函数在这里起到什么作用?因为对面向对象编程接触时间不长所以这些问题始终搞不太清楚,望不吝赐教!
中方法而已,我可以在我自己要用到的类里直接定义我用的方法不就可以了吗?
其二构造函数在什么时候被调用?在定义类的时候可以定义构造函数,也不可以不定义,也可以定义多个构造函数?对吗?如果定义多个构造函数那他们又是在什么时候被调用?在类的继承中构造函数在这里起到什么作用?因为对面向对象编程接触时间不长所以这些问题始终搞不太清楚,望不吝赐教!
|
事实上接口主要解决的还是多态问题!
它和具体实现就像你的手和工具的关系,我们可以为手定义一个动作down(),但是我们没有真的实现他,当你的手中拿的是刀时,我们可以为可以实现down()的具体功能是砍(具体实现了down()的功能);当你手中是锤子时,我们可以为可以实现down()的具体功能是敲。当别人调用的的手的时候你的手就可以做砍或敲的工作,具体看你给它什么工具。这就是实现了手的功能down()的多态.
至于构造函数:主要是用来初始化对象的。如果你不定义的话编译器会自动加入默认构造函数的。如果定义了多个构造函数那就要看你实例化类的时候调用的哪个构赵函数了。继承中的子类实例化对象的时候先调用的是父类的构赵函数,用来初始化父类的属性。
它和具体实现就像你的手和工具的关系,我们可以为手定义一个动作down(),但是我们没有真的实现他,当你的手中拿的是刀时,我们可以为可以实现down()的具体功能是砍(具体实现了down()的功能);当你手中是锤子时,我们可以为可以实现down()的具体功能是敲。当别人调用的的手的时候你的手就可以做砍或敲的工作,具体看你给它什么工具。这就是实现了手的功能down()的多态.
至于构造函数:主要是用来初始化对象的。如果你不定义的话编译器会自动加入默认构造函数的。如果定义了多个构造函数那就要看你实例化类的时候调用的哪个构赵函数了。继承中的子类实例化对象的时候先调用的是父类的构赵函数,用来初始化父类的属性。
|
由于在JAVA中没有多重继承的概念,同时,有时候在现实中又存在这种方式,所以在JAVA中引入接口的概念,同时,构在函数的调用根据调用者的函数参数决定,是否调用那一个!
|
对于接口,到底什么时候用,其作用是什么,建议你还是看看书吧
比如,你有接口A、B,你可以定义:
pbulic class C imp.. A,B{..}
但如果A、B是CLASS,你就不能这么做
构造函数是这个类被实例化的时候调用。
比如,你有接口A、B,你可以定义:
pbulic class C imp.. A,B{..}
但如果A、B是CLASS,你就不能这么做
构造函数是这个类被实例化的时候调用。
|
我们知道,在JAVA中没有多重继承!但并不说明现实中不存在这种形式,所以引入接口来实现多重继承!至于构造函数,这个看看书就知道了!
http://java.sun.com
http://java.sun.com
|
如果在你自己要用到的类里直接定义你用的方法,是可以,但是下次你用此方法时还要重新定义它,就不能体现出可重用的思想了
|
多重继承,楼上不是说明白了吗
public MyClass extends xxxx implements 接口1,接口1,接口1,...
{
}
而不能
public MyClass extends xxxx1,xxxx12,xxxx3.... implements 接口1,接口1,接口1,...
{
}
public MyClass extends xxxx implements 接口1,接口1,接口1,...
{
}
而不能
public MyClass extends xxxx1,xxxx12,xxxx3.... implements 接口1,接口1,接口1,...
{
}