簡體   English   中英

Java父類未調用Scala子類構造函數

[英]Scala Child Class Constructor is not being called from Java Parent Class

我不太確定自己在做什么錯,我有一個名為Player的Java父類和一個Scala子類Character。 當我調用Character類時,將調用父構造函數,但不會調用子構造函數。 我覺得這里缺少基本的東西。

這是Java類(父類):

public class Player implements java.io.Serializable {
    public Player(EntityClientPlayerMP player){
       //...
    }
}

這是Scala類(兒童):

class Character(clientPlayer:EntityClientPlayerMP) extends Player(clientPlayer) with Serializable {

  def Character(client:EntityClientPlayerMP) = {
    //...
  }

  def Character(name:String, playerUID:String) = {
    //...
  }

  def Character(name:String) = {
    //...
  }

  def Character() = {
     //...
  }
}

Scala中的構造函數的工作方式不同於Java。 特別是,它們不是與類同名的def 您可以在許多地方閱讀有關它的信息

無論如何,如果您確實需要備用構造函數,則它們看起來像這樣:

class C(name: String) {
  def this(i: Int) = this(i.toString)
}

(原因是,忘記在備用構造函數中正確初始化事物是大量的錯誤和額外的樣板。通過強制將所有內容都傳遞給單個主構造函數,在僅需要一個構造函數時語法會更簡單,並且初始化錯誤的可能性較小。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM