站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题接口在程序中起什么作用呢。

接口在程序中起什么作用呢。

摘要: 接口在程序中起什么作用呢。


类实现接口中的方法。
或者两个类都实现接口中的方法,这两个类又能存在什么联系呢?


这两个类都属于这个接口的子类
这两个类都可以作为以此接口为参数的参数传入


to:hdhmail2000(禅剑飞雪)

你的这句:这两个类都可以作为以此接口为参数的参数传入
我不太明白,能说得具体吗


interface Iprint
{
public void ok(int n);
}
//======================================
public class Print1 implements Iprint
{
public void ok(int n)
{
System.out.println(n);
}
}
//==================================
public class Print2 implements Iprint
{
public void ok(int n)
{
System.out.println(n);
}
}
//====================================
public class Test
{
public void testPrint(Iprint testPrint)
{
testPrint.ok(1000);
}

public static void main(String[] args)
{
Iprint printtemp=new Print1() //这里还可以用new Print2()
(new Test()).testPrint(printtemp);
}
}


信手写的,难免有错误,意思就是这样了


楼上说得对!!


有点像完全没有实现的抽象类,而且一个类能实现多个接口,类则只能继承一个.


我要嫖娼, 所以我得去妓院。

只要我去了妓院,就有服务向我提供。

我只要搞就可以了,至于和谁搞了,我不在乎.

这就是interface


to:hdhmail2000(禅剑飞雪)

有两点问题:
1、“ (new Test()).testPrint(printtemp);”这句的(new Test()).写法是什么意思,没有见过
2、你的两个类Print1 、Print12都实现了接口Iprint,它们在主程序中起什么作用呢,及它们之间有什么联系呢,我还是没有从这段程序中看出来


1、创建Test类的实例阿,然后才能调用testPrint方法
2、类Print1 、Print12只要遵守了Iprint接口的规范,就可以怎么实现都可以
//======================================
public class Print1 implements Iprint
{
public void ok(int n)
{
System.out.println(“n1”+n);
}
}
//==================================
public class Print2 implements Iprint
{
public void ok(int n)
{
System.out.println("n2"+n);
}
}
这样你能看出点东西来了吧?


1、在本类中使用本类的方法需要实例化吗
2、类Print1 、Print12只要遵守了Iprint接口的规范,但它们之间不存在任何关系,可以这个理解吗


public class Test
{
public void testPrint(Iprint testPrint) //这个函数不需要任何修改,只要传入的 参数是Iprint接口的子类
{
testPrint.ok(1000);
}

public static void main(String[] args)
{
Iprint printtemp1=new Print1(); //Print1的实例
Iprint printtemp2=new Print2(); //Print2的实例
(new Test()).testPrint(printtemp1); //不同的实例传给testPrint函数
(new Test()).testPrint(printtemp2);
}


1、是的,必须要得,因为是在public static void main(String[] args) 这样的静态函数中调用
2、关系不是都由Iprint实现的吗?除了这个当然别的没有关系了


补充,在本类中,如果为非静态方法调用的,那么不需要创建实例的


to :hdhmail2000(禅剑飞雪)
比如说,有一件事情A ,我去做了它(A),然后你也去做了它(A)。但我和你没有任何关系。这样理解对吗?


to :hdhmail2000(禅剑飞雪)

你这句话:补充,在本类中,如果为非静态方法调用的,那么不需要创建实例的

就是说在本类中,静态方法(static)调用动态方法要实例化本类用(new Test()).开头


差不多吧
只要我们两个按照合法的步骤把那个事情作好了(实现了接口),不管用什么方式(接口的具体实现),那么就都能达到目的了
你我之间的关系就是都按照合法的步骤来做了(接口规范),别的没有什么关系


准确来说静态方法调用本类的非静态方法就需要实例化


静态方法调用本类的静态方法就用:本类.静态方法


to:hdhmail2000(禅剑飞雪)

那在本类中
静态方法 调用 静态方法呢
动态方法 调用 静态方法呢
动态方法 调用 动态方法呢

它们是否需实例化本类呢


静态方法 调用 静态方法呢 Test.testPrint(printtemp1);
动态方法 调用 静态方法呢 Test.testPrint(printtemp1);
动态方法 调用 动态方法呢 (new Test()).testPrint(printtemp1);

呵呵,要得分不容易啊
兄弟明白了别忘了给分阿



哈啥:明白了,多谢了!马上给分!


接口可以用生活中的插座来比较,如果有相同的插座口就可以让他们连通,如果没有就不可以,那么可以用一个转接口来实现。

:)我个人理解。


接口是用来隔离实现对象的,一个接口可以由多个对象来实现,完成不同的功能。

这些对象内部实现可能完全不同,实现的业务也不同。但只要是实现了相同的接口,则所以调用这些接口的对象则不用修改。


接口可以表现为各种对象的共性和特殊性。



我要嫖娼, 所以我得去妓院。

只要我去了妓院,就有服务向我提供。

我只要搞就可以了,至于和谁搞了,我不在乎.

这就是interface

---------------------
有意思


↑返回目录
前一篇: jstl 的 forEach?
后一篇: 关于javaw.exe进程的问题