java如何实现接口(Java接口实现)

网友投稿 309 2022-12-31


本篇文章给大家谈谈java如何实现接口,以及Java接口实现对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享java如何实现接口的知识,其中也会对Java接口实现进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java中的接口怎么实现?

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

java如何写一个接口?

非常简单java如何实现接口,基础语法java如何实现接口
public interface 接口名 {
常量定义;
抽象方法定义java如何实现接口
default 方法定义java如何实现接口
}
即使你在接口中不定义任何方法java如何实现接口,也是可以的。

Java 怎么通过反射获取并实现这个类里面的接口,并且实现接口中的方法

获取当前线程的ClassLoader,通过ClassLoader获取当前工作目录,对目录下的文件进行遍历扫描。过滤出以.class为后缀的类文件,并加载类到list中,对list中所有类进行校验,判断是否为指定接口的实现类,并排除自身。返回所有符合条件的类。

这个方没有考虑不同的文件格式。当程序打成jar包,发布运行时,上述的这种遍历file的操作就失效了。只能扫描到当前方法的同级目录及其子目录。无法覆盖整个模块,遍历文件的逻辑太啰嗦,可以简化。

扩展资料:

Java使用注意事项:

1、如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件。

2、如果指定了classpath,那么会在指定的目录下查找要运行的类文件。

3、PATH环境变量。作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。

4、需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。

java怎么使用接口 java如何实现接口操作

接口是Java 实现多继承的一种机制,一个类可以实现一个或多个接口。接口是一系列

方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些

方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。简单的说接口不

是类,但是定义了一组对类的要求,实现接口的某些类要与接口一致。

在Java 中使用关键字interface 来定义接口。例如:

public interface Compare {
public int compare(Object otherObj);
}

Compare 接口定义了一种操作compare,该操作应当完成与另一个对象进行比较的功能。

它假定某个实现这一接口的类的对象x 在调用该方法时,例如x . compare(y),如果x 小于y,

返回负数,相等返回0,否则返回正数。

举例

public class Student extends People implements Compare{
private String sId; //学号
//Constructor
10
public Student() {
this("","","");
}
public Student(String name,String id,String sId){
super(name,id);
this.sId = sId;
}
public void sayHello(){
super.sayHello();
System.out.println("I am a student of department of computer science.");
}
//get  set method
public String getSId(){
return this.sId;}
public void setSId(String sId){
this.sId = sId;}
//implements Compare interface
public int compare(Object otherObj){
Student other = (Student)otherObj;
return this.sId.compareTo(other.sId);
}
}//end of class

Java实现Comparable接口

Java lang Comparable接口中唯一的方法是pareTo() 在该方法中可以进行简单的相等比较以及执行顺序比较 接口实现框架如下 [java] view plaincopyprint?

public class ComparableImpl implements Comparable<ComparableImpl {

@Override public int pareTo(ComparableImpl o) { // TODO Auto generated method stub return }

}一个类实现了Comparable接口 则说明它的实例具有内在的排序关系 就可以跟多种泛型算法以及依赖于该接口的集合实现进行协作 依赖于比较关系的类包括有序集合类TreeSet和TreeMap 以及工具类Collections和Arrays 若一个数组中的元素实现了Comparable接口 则可以直接使用Arrays类的sort方法对这个数组进行排序 Java平台库中的所有值类(value classes)都实现了Comparable接口

Comparable的规范说明如下 将当前这个对象与指定对象进行顺序比较 当该对象小于 等于或大于指定对象时 分别返回一个负整数 零或者正整数 如果由于指定对象的类型而使得无法进行比较 则抛出ClassCastException异常

pareTo方法的实现必须满足如下几个限制条件 自反性 对称性 传递性和非空性

一般来说 paraTo方法的相等测试应该返回与equals方法相同的结果 如果相同 则由pareTo方法施加的顺序关系被称为 与equals一致 如果不同 则顺序关系被称为 与equals不一致 如果一个类的pareTo方法与equals方法的顺序关系不一致 那么它仍然能正常工作 只是 如果一个有序集合包含了该类的实例 则这个集合可能无法遵循某些集合接口的通用约定 因为集合接口的通用约定是按照equals方法定义的 而有序集合使用了由pareTo施加的相等测试 下面是实现了Comparable接口的类 同时 该类还重写了equals和hashCode等方法 [java] view plaincopyprint?

public abstract class ZLTextPosition implements Comparable<ZLTextPosition {

public abstract int getParagraphIndex() public abstract int getElementIndex() public abstract int getCharIndex()

public boolean samePositionAs(ZLTextPosition position) { return getParagraphIndex() == position getParagraphIndex() getElementIndex() == position getElementIndex() getCharIndex() == position getCharIndex() }

@Override public int pareTo(ZLTextPosition position) { final int p = getParagraphIndex() final int p = position getParagraphIndex() if (p != p ) { return p < p ? }

final int e = getElementIndex() final int e = position getElementIndex() if (e != e ) { return e < e ? }

final int c = getCharIndex() final int c = position getCharIndex() if (c != c ) { return c < c ? } return }

@Override public boolean equals(Object obj) { if (this == obj) { return true } if (!(obj instanceof ZLTextPosition)) { return false }

final ZLTextPosition position = (ZLTextPosition)obj return samePositionAs(position) }

@Override public int hashCode() { return (getParagraphIndex() << ) + (getElementIndex() << ) + getCharIndex() }

@Override public String toString() { return getClass() getName() + + getParagraphIndex() + + getElementIndex() + + getCharIndex() }

lishixinzhi/Article/program/Java/hx/201311/26372

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

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, 用抽象类来定制系统中的扩展点
抽象类来完成部分实现,还要一些功能通过它的子类来实现 关于java如何实现接口和Java接口实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 java如何实现接口的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java接口实现、java如何实现接口的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:api网关开源框架(开源API网关)
下一篇:Spring条件注解@Conditional示例详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~