Scala定义一个类Shape,它包含一个抽象函数getArea(),从Shape类派生出Rectangle和一个特质Circle,它们重写getArea()函数,计算其的面积。编写伴生对象,测试Rectangle和Circle,并输出。 输入1求长方体面积 输入2求圆面积
时间: 2024-10-23 18:13:22 浏览: 16
在Scala中,我们可以创建一个抽象基类`Shape`,定义一个抽象方法`getArea()`,然后通过继承和特质来实现实例化。让我们来看看如何操作:
```scala
abstract class Shape {
def getArea(): Double
}
trait Circle extends Shape {
var radius: Double
override def getArea(): Double = math.PI * radius * radius
}
case class Rectangle(length: Double, width: Double) extends Shape {
override def getArea(): Double = length * width
}
object Main {
// 定义伴生对象
def main(args: Array[String]): Unit = {
// 测试Rectangle和Circle
val rect = Rectangle(5.0, 4.0)
println(s"Rectangle area: ${rect.getArea()}")
val circle = Circle()
circle.radius = 7.0
println(s"Circle area: ${circle.getArea()}")
// 用户输入选择
val inputChoice = scala.io.StdIn.readInt()
inputChoice match {
case 1 => println("Please enter the dimensions of a rectangle (length and width):")
// 添加用户输入并计算面积
case 2 => println("Please enter the radius of a circle:")
// 添加用户输入并计算面积
case _ => println("Invalid choice.")
}
}
}
```
在这个例子中,如果你想要输入特定尺寸来计算面积,你需要添加相应的用户输入部分。你可以询问用户长度、宽度(对于矩形)或半径(对于圆形),并将这些值赋给相应的字段,然后计算并输出面积。
阅读全文