Scala抽象类中的私有构造函数?

托科拉

我知道不能实例化抽象类,所以也许我正在回答自己的问题,但是有没有办法将私有构造函数放在抽象类中?我的问题是我有一个抽象类,其中的两个子类具有完全相同的方法,并且某些方法以相同的方式完成,因此我想在抽象类中实现它们,但是它们返回该类的成员所以我想不出一种方法来返回我无法实例化的东西。我想返回this(x),但是我不知道如果没有抽象类具有构造函数,我是否可以。

abstract class Storage {
    def +(other: Storage) : Storage = {
        var d=List()
        for (i<-other.length){
             d=this.element(i)+other.element(i)
        }    
        this(d) 
    }
}

其中element在指定位置给出元素,而两个子类使用将List用作参数的构造函数。

j

您正在寻找的是在某些语言(例如Delphi)中称为“虚拟构造函数”的概念。Scala没有虚拟构造函数,但是您可以使用虚拟工厂方法部分模拟它们,这足以满足您的用例:

abstract class Storage {
  def newLikeThis(d: List[Elem]): Storage

  def +(other: Storage): Storage = {
    ...
    newLikeThis(d)
  }
}

class StorageA(d: List[Elem]) extends Storage {
  def newLikeThis(d: List[Elem]): StorageA =
    new StorageA(d)

  ...
}

// same for StorageB

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala抽象类中的私有构造函数?

来自分类Dev

抽象类与私有构造函数

来自分类Dev

Scala中具有构造函数参数的抽象类

来自分类Dev

在C#中的抽象类中,私有构造函数有什么用?

来自分类Dev

抽象类可以在C ++ 11中具有构造函数和私有成员吗

来自分类Dev

Java中的私有抽象类

来自分类Dev

在抽象类中调用构造函数

来自分类Dev

在抽象类中调用构造函数

来自分类Dev

如何调用抽象类的私有构造函数进行模拟。

来自分类Dev

使类抽象vs使构造函数私有

来自分类Dev

Scala中的隐式抽象类构造函数参数和继承

来自分类Dev

Java抽象类,抽象构造函数

来自分类Dev

抽象类中的私有实例变量

来自分类Dev

具有隐藏构造函数的抽象类的实例

来自分类Dev

为什么抽象类可以有构造函数?

来自分类Dev

具有工厂构造函数的抽象类的好处?

来自分类Dev

继承没有任何构造函数的抽象类

来自分类Dev

从抽象类派生的类构造函数

来自分类Dev

使用泛型在抽象类中调用构造函数

来自分类Dev

抽象类中受保护的内部构造函数

来自分类Dev

Spring在抽象类构造函数中自动执行

来自分类Dev

抽象类中未实现的构造函数

来自分类Dev

Java中的构造函数和抽象类

来自分类Dev

使用泛型在抽象类中调用构造函数

来自分类Dev

构造函数和抽象类中的java调用方法?

来自分类Dev

如何覆盖子类中的抽象类构造函数

来自分类Dev

C#中具有多个构造函数的抽象类

来自分类Dev

在具有公共构造函数而不是受保护构造函数的抽象类中,有什么要点吗?

来自分类Dev

构造函数需要参数的抽象类与具有抽象get-only属性的抽象类之间的区别

Related 相关文章

热门标签

归档