当前位置: 首页 > 知识库问答 >
问题:

kotlin子类构造函数中的更多参数

广宏远
2023-03-14

我是新手。我想在Person类驱动的Employee类中添加age参数。我怎么能在科特林做到?!

abstract class Person constructor (var name :String ,var gender :String) {
}

我的错误是这样的:

class Employee() : Person() {
    constructor(age : Int ) : super (name , gender)
} 

为什么不能在员工构造函数中使用var或val?!我犯了什么错误?

共有1个答案

洪承天
2023-03-14

为此使用主构造函数:

class Employee(name: String, gender: String, val age: Int) : Person(name, gender) {} 

如果父类中有一个带有某些参数的主构造函数,则应在其子类中指定相同的构造函数,并在需要时加上其他参数。

 类似资料:
  • 问题内容: 我有两个类,和,扩展了前一个类。 具有以下构造函数: 我将注意到所有实例变量都已设置为private。 同时,具有以下构造函数: 但是,这为我的构造函数引发了“找不到符号”错误。 我尝试使用,但是我的超类的私有范围阻止了这种情况。 我发现向我的构造函数中添加字段并允许我调用超级构造函数,但是我想知道是否存在一种无需在子类构造函数中传递其所有参数的情况下调用超级构造函数的方法? 问题答案

  • 我有以下代码: 我不希望字段ui有一个getter,但是kotlin在默认情况下会生成它,因为它是构造函数中定义的val。 在properties and fields文档中,我发现我可以用以下代码生成一个私有getter 但我在构造函数定义中找不到这样做的方法

  • 问题内容: 编译该程序时,出现错误- 错误-找不到构造函数Person()。为什么定义Person()是必要的? 问题答案: 创建时,您要同时创建一个。为了确保构造正确,编译器在构造函数中添加了一个隐式调用: 由于没有无参数构造函数,因此失败。 您可以通过以下任一方式解决它 添加对super的显式调用,如下所示: } 或通过将no-arg构造函数添加到: } 通常,编译器还会隐式添加无参数构造函数

  • 无论我用什么方法尝试,无论是主构造函数还是次构造函数,我都不知道如何在kotlin中声明一个带有超类和构造函数的新类。 这是我最想做的,但它给出了一个错误,期望成员声明。 这是我认为主要构造函数的外观,但它给出了相同的错误。在Internet上搜索没有帮助,我只能找到第二个示例。 那么,用一个超类和它的一个构造函数创建一个类的所有有效方法是什么呢?

  • 请帮我从这段代码中查找错误。我还是新手,我不知道这是否正确。我确实有一个错误。这就是错误:类Person中的构造函数Person不能应用于给定类型;super();^requiredent:String,String,String找到:没有参数原因:实际和正式参数列表长度不同这是我的代码: 编辑:如果我对Person和Address类都这样做。我只能有三个ARG构造函数。如何调用one-arg构造

  • 我在Android中创建一个自定义视图,我想添加一个val字段到构造函数,但是View包含多个构造函数。 Kotlin不允许在二级构造函数中使用val字段,因此我无法执行以下操作: 如何向构造函数添加val字段,但仍然扩展父类的多个构造函数? 我尝试过将val添加到辅助构造函数,但是静态编程语言不允许在辅助构造函数上使用val。 我尝试过创建一个主构造函数(我计划显式使用的那个)并忽略其他构造函数