就像标题所说的,如果我的类allready已经实现了一个接口,有没有理由我应该有一个构造函数呢?在我看来这是重复的代码。
interface PersonInterface {
firstname: string;
lastname: string;
email: string;
}
class Person implements PersonInterface {
firstname = "John";
lastname = "Johnsson";
email = "John.jonson@mail.com"
PrintPerson() {
console.log(`${this.firstname}, ${this.lastname}, ${this.email}`)
}
}
通常,使用typescript,我们实现接口以使类的属性严格类型化。但是构造函数是自动为您生成的,如果您需要,可以对其进行修改。基本上,interface和constructor是OOP的两种不同的情况,因此没有理由使用构造函数,因为如果您用类实现了interface就会自动生成构造函数。
您的Person
类有一个构造函数,它只是为您生成的一个构造函数。(它将这些值分配给公共属性。)没有理由有一个显式的,除非您需要做一些生成的构造函数不会为您做的事情。
(但这与实现接口无关。如果您的类没有implementsPersonInterface
,情况也是如此。您实现接口的事实与是否需要构造函数无关。)
问题内容: 我在一个Activity中有一个IntentService,当我尝试调用该服务时,它将引发此错误,我发现这很奇怪,因为如果我声明了空的构造函数。 错误: AndroidManifest.xml 活动: 问题答案: 你是一个内部阶级。如果要将其保留在内部,请将其更改为static: 您可能需要阅读不同类型的嵌套类。google的第一个链接:http : //docs.oracle.com
问题内容: 这是一段代码,作为示例,其余的只是方法(迷宫类的底部)。所以当实例化时,使用 和 这将打印出网格阵列。这是合法的吗?我认为所有类都需要构造函数,它如何打印出二维网格数组? 迷宫课: 问题答案: 不需要 显式 定义构造函数;但是,所有类都必须具有构造函数,如果不提供任何默认构造函数,则将生成默认的空构造函数: 请参见默认构造函数。
问题内容: 在Java中,如果有接口: 然后实现是: 所以我的意思是,如果用户想用构造函数声明实例: 那不可能吗? 问题答案: 那不可能吗? 那就对了。你永远做不到 之后你必须选择一个 类 实现了接口(*) ,如: 为什么? 您可以将接口视为类的属性。比喻是形容词,例如“红色”。例如,创建一个红色的球()或一辆红色的汽车()是很有意义的,但是仅创建“红色”()没有任何意义(“红色代表 什么 ?”)
我正在将我的一些Java代码转换为Kotlin,我不太明白如何实例化Kotlin代码中定义的接口。作为一个例子,我有一个接口(用Java代码定义): 然后在我的Kotlin代码中,我进一步实例化了这个接口: 而且效果很好。然而,当我将MyInterface转换为Kotlin时: 当我尝试实例化接口MyListener时,我得到了一条错误消息:-尽管在我看来除了语法之外没有什么变化。我是否误解了Ko
我有一个(相当复杂的)数据类型: 现在我发现自己需要另一个数据类型…有两个构造函数。一个与的相同;另一个只存储一个。我有什么选择? 虽然这会起作用,但它也允许类似这样的东西,这是没有意义的。
*我想在那里调用BankHashSet empty consructor。谢谢.