在Kotlin中使用乘法变量从抽象类继承

Dus*_*Dus 0 kotlin

我有一个带有乘法变量的抽象类:

abstract class Animal(var name: String, var age: Int, var mother: Animal, 
                      var father: Animal, var friends: ArrayList<Animal>)
Run Code Online (Sandbox Code Playgroud)

现在,正如你可能猜到的那样,我想创造出来自Animal的"猫","狗","鹦鹉"等等.

但是,当我定义Cat类时,我不知道名称,年龄,...字段,所以代码不能编译.

class Cat : Animal()
Run Code Online (Sandbox Code Playgroud)

不编译,因为我们需要传递我们还不知道的变量.

另一个问题是:如何在类中启动内部类?一只猫的母亲和父亲都是猫.

Pel*_*cho 6

查看有关继承的文档

由于您有一个主构造函数,您必须将参数传递给super:

abstract class Animal(var name: String, var age: Int, var mother: Animal, 
                      var father: Animal, var friends: ArrayList<Animal>)

class Cat(name: String, age: Int, mother: Animal, 
          father: Animal, friends: ArrayList<Animal>) 
          : Animal(name, age, mother, father, friends)
Run Code Online (Sandbox Code Playgroud)