草庐IT

interface-design

全部标签

java - 覆盖接口(interface)的变量?

正如我从各种Java书籍和教程中读到的,在接口(interface)中声明的变量是常量,不能被覆盖。我写了一个简单的代码来测试一下interfaceA_INTERFACE{intvar=100;}classA_CLASSimplementsA_INTERFACE{intvar=99;//testvoidprintx(){System.out.println("var="+var);}}classhello{publicstaticvoidmain(String[]args){newA_CLASS().printx();}}然后打印出来变量=99var是否被覆盖?我完全糊涂了。感谢您的任

java - 如何将 lambdas 用于具有多种方法的接口(interface)?

如果目标类有多个接口(interface)方法,有没有办法使用lambda?还是在那种情况下您只需要使用匿名内部类? 最佳答案 不,没有。如果我正确理解了您的问题,您会希望将lambda用于具有多个抽象方法的接口(interface)。在那种情况下,答案是否定的:Afunctionalinterfaceisanyinterfacethatcontainsonlyoneabstractmethod.(Afunctionalinterfacemaycontainoneormoredefaultmethodsorstaticmethods

java - JAVA 接口(interface)中实例变量的公共(public)静态最终声明

为什么我们在Java接口(interface)中使用publicstaticfinal声明实例变量?在Java接口(interface)中,所有变量都是隐式的publicstaticfinal。尽管它是在接口(interface)内声明的,但在常量变量中使用publicstaticfinal是一个好的编码习惯吗?例如:publicinterfaceTestInterface{publicstaticfinalStringEX_CONSTANT="ABC";publicstaticfinalintEX_INT_CONSTANT=5;publicstaticfinaldoubleEX_DO

java - Java 发明了接口(interface)吗?

我知道C++纯虚类,但Java更进一步,为多接口(interface)(而非实现)继承创建了一流的(无双关语意)概念,接口(interface)。它现在是主要静态类型语言的主要内容。Java发明了接口(interface)概念吗?或者它是否也作为第一类概念出现在较早的语言中? 最佳答案 这里是文章TheJavaLanguageEnvironment的摘要。Java语言中的接口(interface)只是对象声明它实现的方法的规范。接口(interface)不包括实例变量或实现代码——仅包括常量和方法的声明。Java语言中接口(inte

java - 可序列化的标记接口(interface)可以包含默认方法吗?

我认为不能,因为标记接口(interface)原则是没有任何方法,但由于默认方法不是抽象我不确定。 最佳答案 就Java而言,“标记”接口(interface)只是一个常规接口(interface)。因此,它可以像任何(Java-8)接口(interface)一样具有默认方法。现在,至于这是否违反了标记接口(interface)的原则,我不得不说是的。Marker接口(interface)应该充当某种标志,仅标识一个类满足某些外部条件。现在,它可以是一个标记接口(interface)并且具有抽象/默认方法,但它不再纯粹符合定义。来自

java - 100% 抽象类与接口(interface)

是否有理由使用100%抽象类而不是接口(interface)?您能否给我一个何时使用两者的好例子,以便我稍微掌握一下这个概念?更新:100%抽象类->只有抽象方法的抽象类。我很好奇php和java在这方面是否存在差异。更新2:即使我理解大部分原因我对概念比技术原因更感兴趣。 最佳答案 如果“100%抽象类”是指“没有具体方法的抽象类”,那么我可以想到一个原因:可见性。您可以定义要保护的抽象方法,因此它不是类的公共(public)API的一部分。然而,这似乎是一个奇怪的设计。我想到的另一件事是,当您希望向基类添加通用功能时-即,如果它

java - 为什么类编译为 .class 但接口(interface)不编译为 .interface

接口(interface)没有编译成MyInterface.java编译成.interface文件有什么具体原因吗?但是任何类都编译成.class文件。! 最佳答案 因为重点是表明该文件是Java字节代码(并且.class是为此选择的扩展名),而不是特定的语言结构。 关于java-为什么类编译为.class但接口(interface)不编译为.interface,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

java - 单例类如何使用接口(interface)?

我在很多地方读到单例可以使用接口(interface)。有些我无法理解这一点。 最佳答案 每个类都可以实现一个接口(interface),而Singleton只是一个“普通”类,它确保除了它可能实现的其他业务逻辑之外,在任何时间点都只存在一个实例。这也意味着Singleton至少有2个职责,这不是好的OO设计,因为类应该只有1个职责并确保它们擅长该职责,但这是另一个讨论。 关于java-单例类如何使用接口(interface)?,我们在StackOverflow上找到一个类似的问题:

c# - 为什么使用接口(interface)而不是抽象类更可取?

我并不是在问这两者之间的区别,而是为什么更喜欢接口而不是抽象类。 最佳答案 抽象类最明显的“缺点”是继承类型只能从一个抽象类继承。当涉及到接口时,您可以实现多个接口。因此,当您设计您的类型以便它们需要实现多个契约时,接口只是唯一的选择。因此,至少在C世界中,结合SOLID原则,这可以解释对接口的倾向。 关于c#-为什么使用接口(interface)而不是抽象类更可取?,我们在StackOverflow上找到一个类似的问题: https://stackoverf

数字IC设计 - 逻辑综合简介与Design Compiler使用(GUI方式)

逻辑综合定义逻辑综合就是将前端设计工程师编写的RTL代码,映射到特定的工艺库上,通过添加约束信息,对RTL代码进行逻辑优化,形成门级网表。约束信息包括时序约束,线载模型约束,面积约束,功耗约束等。逻辑综合的转换过程逻辑综合主要包含以下三个方面:翻译,门级映射,逻辑优化。Synthesis=Translation+GateMapping+LogicOptimizationTranslation:将Verilog或者VHDL代码转换成GTECH网表(通用的网表格式,与工艺库没关系),然后会转换成和工艺库相关的网表设计文件。GateMapping:将GTECH网表文件进行实际门级电路的映射,映射到标