java 接口怎么用?应该怎么实现?

作者&投稿:贾窦 (若有异议请与网页底部的电邮联系)
Java中的接口怎么实现?~

举个面积的例子:在java中,定义一个接口,声明计算长方形面积和周长的抽象方法,再用一个类去实现这个接口,再编写一个测试类去使用这个接口。首先,接口必须单独存放,如果我们用eclipse编程的话,它们提示:The public type **** must be defined in its own file,意思是必须要定义在其自己的文件中,所以要为接口文件单独存放起来,举例,我们的接口要实现获到矩形的长,宽,面积,周长,所以定义以下的接口。public interface calrect {
public abstract int calarea();
public abstract int calgirth();
public abstract int getx();
public abstract int gety();
}注意,定义接口就像定义类一样,接口的访问控制符只能用public,用public定义的接口可以被所有的类和包引用,而缺省的则只能被同一个包中的其他类和接口引用,这符合JAVA中访问控制符的一般要求,关于接口再引用其他接口则是后话。以上接口文件名为calrect.java.另外需要指出的是接口中不能给方法给出方法体。接下来,需要定义一个类来实现接口,因为不知道JAVA的内置矩形类是什么名,所以为了安全,将该类定义为RRect,这可以认为是一种安全策略。关于implements,可以参考其他资料。该类引用了接口calrect,所以必须对calrect中的方法一一实现。//定义矩形类 应用接口class RRect implements calrect{private int x;
private int y;public RRect (){
x=3;y=4;
}
public int calarea(){
return x*y;
}
public int calgirth(){
return x*2+y*2;
}
public int getx(){
return x;
}
public int gety(){
return y;
}
}//接下来,定义一个测试类,所谓测试类,我理解为定义一个类,在其定义类RRect的对象,并验证其中的方法,看看是不是可以正常使用//定义Class1类
public class Class1{
RRect rect;
public static void main(String []args){
RRect rect=new RRect();
System.out.println("矩阵的长"+ rect.getx());
System.out.println("矩阵的宽"+ rect.calarea());
System.out.println("矩阵的面积"+ rect.calarea());
System.out.println("矩形的周长 "+rect.calgirth());
}

}运行结果:矩阵的长3
矩阵的宽12
矩阵的面积12
矩形的周长 14注:接口单存放,接口实现类和测试类可以存放在一个文件中

接口是很重要的面向对象方式,继承接口的类不用全部实现定义的接口,可以这么说,我定义了好多接口,某个类可以这么实现这个接口,到另一个类你又想那么实现接口,都是可以的。
或者定义完接口不想管他都可以,虽然很冗余。接口不多了不影响操作。
比如:
定义了一个线性表接口。
public interface Ilist {
public void clear();
public boolean isEmpty();
public int length();
}
我想具体实现的话就建立以下实现类:
import dao.Ilist;
public class SqList implements Ilist {
private Object[] listElem;// 线性表存储空间
private int curLen;// 线性表的当前长度
// 顺序表的构造函数,构造一个存储空间容量为maxSize的线性表
public SqList(int maxSize) {
curLen = 0;
listElem = new Object[maxSize];
}
public void clear() {
curLen = 0;
}
public boolean isEmpty() {
return curLen == 0;// curLen==0时为true,!=0时为false;
}
public int length() {
return curLen;
}

java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承
用法public class test implements 接口名称
当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象的

比较抽象类与接口
1, 抽象类与接口都位于继承树的上层
相同点
1, 代表系统的抽象层,当一个系统使用一颗继承树上的类时,应该尽量把引用变量声明为继承树的上层抽象类型,这样可以提高两个系统之间的送耦合
2, 都不能被实例化
3, 都包含抽象方法,这些抽象方法用于描述系统能提供哪些服务,但不提供具体的实现
不同点:
1, 在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,这是抽象类的优势,但这一优势限制了多继承,而接口中只能包含抽象方法.由于在抽象类中允许加入具体方法,因此扩展抽象类的功能,即向抽象类中添加具体方法,不会对它的子类造成影响,而对于接口,一旦接口被公布,就必须非常稳定,因为随意在接口中添加抽象方法,会影响到所有的实现类,这些实现类要么实现新增的抽象方法,要么声明为抽象类
2, 一个类只能继承一个直接的父类,这个父类可能是抽象类,但一个类可以实现多个接口,这是接口的优势,但这一优势是以不允许为任何方法提供实现作为代价的三, 为什么Java语言不允许多重继承呢?当子类覆盖父类的实例方法或隐藏父类的成员变量及静态方法时,Java虚拟机采用不同的绑定规则,假如还允许一个类有多个直接的父类,那么会使绑定规则更加复杂,
因此,为了简化系统结构设计和动态绑定机制,Java语言禁止多重继承.而接口中只有抽象方法,没有实例变量和静态方法,只有接口的实现类才会实现接口的抽象方法(接口中的抽象方法是通过类来实现的),因此,一个类即使有多个接口,也不会增加Java虚拟机进行动态绑定的复杂度.因为Java虚拟机永远不会把方法与接口绑定,而只会把方法与它的实现类绑定.四, 使用接口和抽象类的总体原则:
1, 用接口作为系统与外界交互的窗口站在外界使用者(另一个系统)的角度,接口向使用者承诺系统能提供哪些服务,站在系统本身的角度,接口制定系统必须实现哪些服务,接口是系统中最高层次的抽象类型.通过接口交互可以提高两个系统之间的送耦合系统A通过系统B进行交互,是指系统A访问系统B时,把引用变量声明为系统B中的接口类型,该引用变量引用系统B中接口的实现类的实例。
public interface B
{
}
public class C implements B
{
}
public class A
{
}
B a = new C();
2, Java接口本身必须非常稳定,Java接口一旦制定,就不允许随遇更加,否则对外面使用者及系统本身造成影响
3, 用抽象类来定制系统中的扩展点
抽象类来完成部分实现,还要一些功能通过它的子类来实现


黄山市18014279477: java 接口到底怎么用 ~?到底应该怎么实现? -
暨群小建: 接口是很重要的面向对象方式,继承接口的类不用全部实现定义的接口,可以这么说,我定义了好多接口,某个类可以这么实现这个接口,到另一个类你又想那么实现接口,都是可以的. 或者定义完接口不想管他都可以,虽然很冗余.接口不多...

黄山市18014279477: java怎么使用接口 java如何实现接口操作 -
暨群小建: 接口是Java 实现多继承的一种机制,一个类可以实现一个或多个接口.接口是一系列 方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些 方法可以在不同的地方被不同的类实现,而这些实现可以具有不同...

黄山市18014279477: JAVA中接口具体该怎么使用 -
暨群小建: 接口就是一些标准,把一些标准的制度写成方法,例如一个汽车必须有四个轮子,就可以把制造汽车写为一个接口,而制造四个轮子为接口必须方法,实现它的类就必须要实现制造四个轮子的方法.语言、程序、框架的发展都是解耦、分离依赖性的过程,例如springIOC中,将接口的实现类都配置在xml中,如果更换实现类,只需修改xml文件,而不用去修改代码,这样就是降低依赖性.这个东西只能自己慢慢体会,在一个可以多看看java三个特征继承、封装、多态中的多态,理解了多态,接口就自然会用了.

黄山市18014279477: java中的接口怎么用? -
暨群小建: 很简单;比如你有个接口A 是用于添加学生;那么你就得创建一个实现类B去实现A;好处就是外边不去管B类是怎么实现学生信息添加的,只知道有个接口可以这么干就行了;比如,我叫你去买包烟,我不回去管你是走了多少弯路才能买到,我...

黄山市18014279477: java接口怎么使用 -
暨群小建: java不允许多重继承,也就是说一个子类只能有一个父类, Son extends FatherA,FatherB 是错误的 为了弥补这点不足,java允许实现多个接口, 接口就是给出一些没有内容的方法,类似于C++中的虚类.到具体用的时候再由用的方法自己定义...

黄山市18014279477: java中的接口到底怎么用 怎么理解啊 举个简单例子 -
暨群小建: 他只是定义,而不去具体实现,比如一个水桶,你想用它去装水,那么你就在下面的方法中具体写出怎么装水,这个接口只是负责让你装,如果你要装油,那你就具体定义怎么装油,这是的接口也不管你怎么实现,接口只是接受你给参数,至于怎么用要在继承的方法中实现.

黄山市18014279477: java中如何实现接口以及接口中需要注意的 -
暨群小建: 首先用interface声明一个接口,注意接口不是类,我们习惯上可以认为他是一个抽象的类,因为它不能实现方法体,只有方法的定义.然后我们可以写一个类去实现这个接口例如:public class Text implements IUSBable 这样就说明你的这个类中还实现你接口中说定义的方法,不然会报错的! 我的概念就是接口类似于生活中的水龙头,只要你这个人有实现这个接口(水龙头)的方法,那么你就可以用这个水龙头,这个比喻虽然不是那么这样从另一方面说明了接口拥有的可扩展性,假如以后程序升级我只要将接口中的方法增加或修改一下! 这种概念性的东西是要自己多体会的,最好联系生活中的实例来理解,这样会事半工倍!

黄山市18014279477: java接口的使用 -
暨群小建: 面向接口开发是面向对象开发的一个重要思想,面向对象开发是说将一切看成为对象操作,其特性就是封装、继承、多态.面向接口就是说用接口封装一切,将接口功能暴漏给使用者,使用者无需知道具体怎么实现,只知道这个功能干嘛用的就...

黄山市18014279477: java中接口的实现方式有哪些 -
暨群小建: 类继承这个接口(extends),并重写需要实现的方法 类实现这个接口(implements),也是重写需要实现的方法 还有接口继承接口...

黄山市18014279477: java的接口 功能怎么实现的 -
暨群小建: java的接口 定义方法,由类来实现 定义 sender接口 public interface Sender {public void send(); } //ImageSender类来实现 public class ImageSender implements Sender {public void send() {System.out.println("this is Imagessender!");} }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网