java接口实现接口(java怎么实现接口)

4747 517 2022-11-13


本文目录一览:

JAVA实现接口的关键字是什么?

Java中定义接口的关键字是什么?. Java中定义接口的关键字是“interface”。. “interface”是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来装封一定功能的集合。. 接口不能直接实例化,也不能包含成员的任何代码,只定义成员本身。.


java如何写一个接口?


非常简单,基础语法:

public interface 接口名 {

常量定义;

抽象方法定义;

default 方法定义;

}

即使你在接口中不定义任何方法,也是可以的。

java:接口与接口之间是如何实现的

接口与接口之间只能是继承,不能是实现,要实现接口需要定义一个类来实现这个接口,并且这个类必须重写这个接口的所有方法。

具体代码如下:

public class Demo {

interface A{

void a();

}

interface B extends A{

void b();

}

class C implements A{

public void a() {}

}

class D implements B{

public void b() {}

public void a() {}

}

}

会发现接口B继承了接口A之后就拥有了接口A的a()方法,即接口B拥有两个方法。

extends(继承)是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力;implements(实现)用来实现接口中定义的抽象方法。

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注:接口单存放,接口实现类和测试类可以存放在一个文件中

Java中 一个类实现了某接口 则必须实现该接口中的所有方法么?

不一定,关键要看子类是否是抽象类。

如果子类是非抽象类,则必须实现接口中的所有方法;

如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!

1、抽象类定义

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

2、抽象类特点

1)抽象类不能实例化。

2)抽象类可以包含抽象方法和抽象访问器。

3)不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。

4)从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。

3、与具体类的比较

1)抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。

2)允许(但不要求)抽象类包含抽象成员。

3)抽象类不能被密封。

4、与接口的比较

1)相同点

a、不能实例化;

b、包含未实现的方法声明;

c、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)

2)不同点

a、类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。

b、抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。

c、抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。

d、抽象类是对象的抽象,然而接口是一种行为规范。

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, 用抽象类来定制系统中的扩展点

抽象类来完成部分实现,还要一些功能通过它的子类来实现



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

上一篇:Java虚拟机使用jvisualvm工具远程监控tomcat内存
下一篇:接口自动化的好处(接口自动化的好处有哪些)
相关文章

 发表评论

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