Tôi muốn chỉ định màu động vật một lần, và nó giống nhau cho tất cả các loài động vật cùng loài.Làm thế nào để bạn khai báo các giá trị và phương thức trừu tượng trong scala?
Vì vậy, tôi muốn làm:
abstract object Animal {val color: String}
Và sau đó xác định động vật màu sắc cá nhân với
object Dog extends Animal {val color = "green"}
này cần phải được trong đối tượng, như tôi đã có một quy ước mà không thể thay đổi chỉ làm động vật với phương pháp nhà máy cũng tuyên bố trong đối tượng động vật, và các phương pháp nhà máy cần truy cập vào màu sắc. ví dụ:
abstract object Animal {
val color: String
def makeAnimal(args): Animal = ...
}
Làm cách nào để thực sự thực hiện điều này trong scala, vì "chỉ các lớp học có thể đã khai báo nhưng chưa xác định thành viên"?
Tôi có thể nghĩ ra cách hacky để thực hiện điều này bằng cách sử dụng các đặc điểm, nhưng tôi hy vọng có điều gì đó tốt hơn.
[EDIT] Vì vậy, hóa ra tôi không thể sử dụng các đặc điểm để giữ các giá trị/phương pháp vì các lý do phức tạp. Giải pháp hiện tại liên quan đến việc đăng ký tĩnh đối tượng con với đối tượng cha bằng cách sử dụng một đặc điểm, và điều đó cho phép tôi truy cập các giá trị và các phương thức không có đặc điểm phải được xác định trong một đối tượng. Tôi vẫn hy vọng cho một giải pháp tốt hơn.