你后面的表述确实有点不清晰,你问了NVectorADT dv4 = dv.plus(dv2)这个东西,参数dv2是一个DVector类型的,而接口中定义的dv2应该是NVectorADT的,因为DVector实现了NVectorADT这个接口,其实我们可以有一个很不准确的理解:DVector是NVectorADT的子类,所以DVector类型的也就是NVectorADT类型,就好像我们说DVector类型也是Object类型一样。但是这个说法不准确,但是可以这样理解。
下来就是你问参数的传递问题,你问参数在接口里面是怎么传递的,我觉得你理解错,接口就相当于一个规范,里面不存在什么传递值之说,值的传递是在实现类里面。
也就是你只要实现接口过后,就可以暂时不用去管它了,你只需要看你的实现类厘米的方法就行了。
要是对你有帮助,不要忘了采纳哟,呵呵
你好,很高兴为你解答。
这种用法是Java的接口回调。
接口回调是多态的另一种体现。接口回调是指:
可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
class Student implements People {
publicvoid peopleList() {
System.out.println("I’m a student.");
}
}
class Teacher implements People {
publicvoid peopleList() {
System.out.println("I’m a teacher.");
}
}
publicstaticvoid main(String args[]) {
a = new Student(); // 实例化,接口变量中存放对象的引用
a.peopleList(); // 接口回调
a = new Teacher(); // 实例化,接口变量中存放对象的引用
a.peopleList(); // 接口回调
}
}
要什么参数你传什么啊。你可以把arr arr2 arr 3 设成DVector 的成员变量,然后把DVector 传过去,通过DVector 就能得到你的arr arr2 arr 3。