2012-12-15 35 views
10

ruby ​​có hỗ trợ nhiều thừa kế để tôi có thể kế thừa từ nhiều lớp.ruby ​​có hỗ trợ nhiều thừa kế

+4

là google bị hỏng? không phải của tôi downvote BTW –

+1

checkout [Mixins trong Ruby] (http://www.tutorialspoint.com/ruby/ruby_modules.htm) –

+4

@MitchWheat Tôi cần câu trả lời có thẩm quyền, nếu tôi phải nhìn vào Google tôi sẽ không cần một trang web như stackoverflow.com. Xin vui lòng kiêng nếu bạn không thích trả lời. – Joe

Trả lời

26

Không, Ruby không có nhiều thừa kế. Ruby có một cái gì đó tương tự mặc dù: mixins. Ví dụ:

module M; end 
module N; end 

class C 
    include M 
    include N 
end 

C.ancestors #=> [C, N, M, Object, Kernel, BasicObject] 

Lưu ý rằng mixins là không đa kế thừa, nhưng thay vào đó chủ yếu là loại bỏ sự cần thiết của nó.

+0

là cách thừa kế đơn của Ruby với mixin tương tự như kế thừa đơn của Java với "triển khai giao diện"? –

+0

@ 太極 者 無極 而 生 Sắp xếp. Một lớp Java có thể thực hiện một số giao diện theo cách mà lớp Ruby có thể bao gồm nhiều mô-đun. Nhưng một giao diện Java không có triển khai thực hiện, chỉ có các phương thức trừu tượng, trong khi Ruby không có khái niệm về các phương thức trừu tượng và các mô-đun bao gồm việc triển khai thực hiện. –

+0

@AndrewMarshall Với Java 8, bạn có thể thực hiện (mặc định) trong giao diện. –

Các vấn đề liên quan