Java接口定义规范(java为什么要设计接口规范)

2024-06-13 14:10:02 :19

java接口定义规范(java为什么要设计接口规范)

大家好,java接口定义规范相信很多的网友都不是很明白,包括java为什么要设计接口规范也是一样,不过没有关系,接下来就来为大家分享关于java接口定义规范和java为什么要设计接口规范的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

java为什么要设计接口规范

抽象类和接口什么是接口:接口就是一些方法特征的集合------接口是对抽象的抽象。什么是抽象类:抽象类对某具体类型的部分实现------抽象类是对具体的抽象。方法特征包括:方法的名字、参数的数目、参数的类型。不包括:返回类型、参数名字、和抛出的异常。接口是类型转换的前提、是动态调用的保证。实现某一接口就完成了类型的转换(多重继承);动态调用只关心类型,不关心具体类。       --------------------------------------------------------------------------------------------------------------------------------------       JAVA接口(抽象类)用来声明一个新的类型。JAVA设计师应当主要使用接口和抽象类将软件单位与内部和外部耦合起来。换言之,应当使用JAVA接口和抽象类而不是具体类进行变量的类型声明、参数的类型声明、方法的返回类型声明、以及数据类型的转换等。当然一个更好的做法是仅仅使用接口,而不是抽象类来做上面这些事情。在理想的情况下,一个具体类应当只实现接口和抽象类中声明的方法,而不应当给出多余的方法!接口和抽象类一般作为一个类型等级结构的起点。接口比抽象类更为抽象所以优先使用接口声明抽象类型!--------------------------------------------------------------------------------------------------------------------------------------抽象类和接口       抽象类仅提供一个类的部分实现。抽象类可以有实例变量、以及一个或多个构造函数。抽象类可以同时又抽象方法和具体方法。       一个抽象类不会有实例,它的构造函数不能被客户端用来创建实例。一个抽象类的构造函数可以被其子类调用,从而使一个抽象类的所有子类可以有一些共同的实现,而不同的子类可以在此基础上有不同的实现。接口比抽象类更为抽象所以有线使用接口声明抽象类!抽象类是用来继承的。(具体类不是用来继承的,“只要有可能不要从具体类继承---SCOTT MERYES”)。抽象类设计原则:1.          抽象类应当拥有尽可能多的代码!(公用方法)。代码集中于抽象的方向。2.          抽象类应当拥有尽可能少的数据!(公共属性)。数据集中于具体的方向。继承复用的使用条件------- PETER COAD条件1.        子类是超类的一个特殊种类而不是超类的一个角色!正确区分“HAS-A”“IS-A”的关系。2.        子类之间不应发生替换!?3.        子类具有扩展超类的责任,而不是置换(OVERRIDE)掉或注销(NULLIFY)掉的责任。4.        只有在分类学角度上有意义时才可以使用继承,不要从具体类继承。接口和抽象类的区别:    1.       抽象类可以提供某些方法的实现。如果向抽象类中加入一个新的具体的方法,那么所有的子类一下子就得到了这个方法。接口做不到这一点!(这也许是抽象类的唯一优点)。2.      因JAVA的单根结构限制,只类只能实现一个抽象类类型,而接口类型这无此限制。这使抽象类作为类型定义工具的效能落后于接口。接口是定义混合类型(实现多从继承)的理想工具:用一个3.      从代码重构的角度上讲,将一个具体类重构成一个接口的实现是很容易的。

文章来自 haoyu1566的网易博客

[急用!!]java接口的定义方法及通过继承定义接口的方法!!!!

//声明接口Shap  interface Shape{ double getArea();}//声明接口Shap2... interface Shape2D extends Shape{ double getPerimeter();}//声明接口Shap3...  interface Shape3D extends Shape{ double getVolume();}//声明类 Circle ,继承... class Circle implements Shape2D{public static final double PI = 3.1415926;  public  double r;  public Circle(double r) {   this.r = r;} public double getArea() {  return PI*r*r; } @Override public double getPerimeter() {  return 2*PI*r; }}//声明正方形,继承... class Square implements Shape3D{ //正方形,就只定义一个长了 double height;public Square() {} @Override public double getArea() {  return height *height ; } @Override public double getVolume() {  return 4*height; } }//声明 比例接口interface Scaleable{ double scale(double proportion);}public class CircleScaleable extends Circle implements Scaleable{  double r; public CircleScaleable(double r) {  super(r);  this.r = r; } public static void main(String args) {//测试就搞这几个,应该够用了,其他的你自己看着加   CircleScaleable cs = new CircleScaleable(1.0);  System.out.println(cs.getArea());  System.out.println(cs.getPerimeter());  System.out.println(cs.scale(cs.r)); } @Override public double scale(double proportion) {  //比例自己调!改那个10==》任何数  double a = 0;  a = 10*proportion;  return a; }}

JAVA 接口是什么

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

接口作用如下:

1、丰富Java面向对象的思想:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。

2、提供简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也将命名规范限制住了(防止一些开发人员随便命名导致别的程序员无法看明白)。

3、提高维护、拓展性:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类,可是在不久将来,你突然发现这个类满足不了你了,然后你又要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦,如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。

4、增强安全、严密性:接口是实现软件松耦合的重要手段,它描叙了系统对外的所有服务,而不涉及任何具体的实现细节。这样就比较安全、严密一些(一般软件服务商考虑的比较多)。

扩展资料:

关于接口的使用规范:

1、接口中可以定义常量,不能定义变量,如果你在接口中定义属性,那么通过反编译可以看见他会自动用public static final 修饰,接口中的属性都是全局静态常量,接口中的常量必须在定义时指定初始值。

2、 接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。

3、 接口不能实例化,接口中不能有构造。

4、 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。

java为什么要设计接口规范的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java为什么要设计接口规范、java为什么要设计接口规范的信息别忘了在本站进行查找哦。

java接口定义规范(java为什么要设计接口规范)

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.