Tôi có một lớp trừu tượng với giá trị mặc định cho tham số của nó. Tôi không muốn phải sử dụng lại giá trị mặc định trong hàm tạo của tất cả các triển khai có thể có.Tham số mặc định kế thừa Scala trong lớp cha
abstract class Place(val place: String = "World")
class Message(val message: String = "Hello", p: String) extends Place(p) {
override def toString = s"$message $place"
}
Những gì tôi muốn để có được
new Message("Hi", "Universe") = "Hi Universe" // Ok
new Message("Hi") = "Hi World" // Doesn't work, second parameter is required
new Message() = "Hello World" // Doesn't work, second parameter is required
tôi coi việc sử dụng một constructor phụ bỏ qua tham số thứ hai, nhưng nó không giúp vì bạn không thể gọi siêu constructors bên ngoài của các nhà xây dựng chính.
Tôi muốn biết cách thực hiện hoặc tại sao không thể thực hiện được. Tôi không tìm cách giải quyết, như không sử dụng thừa kế.
công trình. không được đóng gói. Ở đây bạn có 3 đối tượng để sắp xếp (đối tượng, trừu tượng và lớp). Đặc biệt không cho tín dụng cho đối tượng và trừu tượng có cùng tên. Lớp tin nhắn phải biết về đối tượng Địa điểm để sử dụng điều này đòi hỏi nhiều hệ thống dây điện hơn, nếu điều đó có ý nghĩa gì. trừu tượng và bê tông nên xử lý tất cả. – Drew