2009-10-31 11 views
9

Hãy nói rằng tôi có một số lớp học như thế này:Phím tắt cho phân lớp trong Scala mà không lặp lại các đối số hàm tạo?

abstract class View(val writer: XMLStreamWriter) { 
    // Implementation 
} 

class TestView(writer: XMLStreamWriter) extends View(writer) { 
    // Implementation 
} 

Đa số lớp con của Xem không sẽ mất đối số nhà xây dựng khác nhau. Tôi muốn để có thể viết một cái gì đó như thế này:

class TestView extends View { 
    // Implementation 
} 

Có một số phím tắt để viết các lớp con để bạn không cần phải xác định một cách rõ ràng args constructor và vượt qua chúng để các lớp cha (vì vậy mà tôi don không phải viết lại tất cả các lớp con của tôi nếu tôi thay đổi chữ ký của siêu lớp)?

Trả lời

11

Tôi sợ rằng bạn đang ở trên chính mình. Các hàm tạo không phải là các hàm tạo kế thừa hoặc đa hình và các lớp con, trong khi chúng phải và luôn gọi một hàm tạo cho lớp cha ngay lập tức của chúng, không và không thể thực hiện tự động, trừ khi có một hàm tạo zero-arg, được ngụ ý bằng cách đề cập đến tên của lớp cha trong mệnh đề "mở rộng".

12
abstract class View { 
    def writer: XMLStreamWriter 
    // Implementation 
} 

class TestView(val writer: XMLStreamWriter) extends View { 
    // Implementation 
} 

Đây có phải là những gì bạn đang tìm kiếm không?