Scala 抽象类 抽象方法 抽象字段

1.抽象类

如果父类中的方法不能立即实现,需要依赖其他子类进行覆盖实现则可以将类定义为抽象类

抽象类的写法:

abstract class 类名{

XXXX...

}

注:

1.包含抽象成员的类必须声明为抽象类。

2.抽象类不能创建对象,即不能实例化。

 

2.抽象方法

一个方法只要没有实现,即没有等号或者方法体,那么它就是抽象方法。

子类覆盖抽象类方法不需要写override关键字

 

3.抽象字段

抽象类中的字段可以不被初始化,由子类进行初始化。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scala 中,`Element` 是一个抽象类抽象类是不能被实例化的类,它们只能被用作其他类的基类,或者在子类中被实现。 `Element` 是 Scala 集合库中的一个类,它代表了一种二维文本布局。由于 `Element` 是一个抽象类,因此它不能被直接实例化。相反,我们必须创建一个子类来实现它的抽象方法。 以下是一个示例,展示了如何定义 `Element` 的子类 `ArrayElement`: ```scala abstract class Element { def contents: Array[String] def height: Int = contents.length def width: Int = if (height == 0) 0 else contents(0).length } class ArrayElement(val contents: Array[String]) extends Element ``` 在这个例子中,我们定义了 `Element` 抽象类,并声明了 `contents`、`height` 和 `width` 抽象方法。我们还定义了一个 `ArrayElement` 类,它扩展了 `Element` 类,并实现了 `contents` 方法。由于 `height` 和 `width` 方法的实现可以从 `contents` 方法中计算得出,因此我们不需要在 `ArrayElement` 类中重新实现它们。 现在我们可以创建 `ArrayElement` 类的实例,并调用它的方法: ```scala val ae = new ArrayElement(Array("hello", "world")) println(ae.contents) // 输出 Array(hello, world) println(ae.height) // 输出 2 println(ae.width) // 输出 5 ``` 在这个例子中,我们创建了一个 `ArrayElement` 类的实例,并打印了它的 `contents`、`height` 和 `width` 属性。注意,在 `ArrayElement` 类中,我们不需要重新实现 `height` 和 `width` 方法,因为它们已经在 `Element` 抽象类中实现了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值