উত্তরাধিকার দুটি শ্রেণীর মধ্যে একটি সম্পর্ক। উত্তরাধিকার ক্লাসগুলির মধ্যে পিতামাতার সাথে সম্পর্ক তৈরি করে। কোড পুনরায় ব্যবহারের জন্য এবং পাবলিক ক্লাস এবং ইন্টারফেসের মাধ্যমে মূল সফ্টওয়্যারটির স্বাধীন এক্সটেনশনের অনুমতি দেওয়ার জন্য এটি একটি প্রক্রিয়া inherit উত্তরাধিকারের সুবিধা হ'ল শ্রেণিবদ্ধতা নীচে বর্গগুলি উচ্চতরগুলির বৈশিষ্ট্যগুলি পেতে পারে তবে তাদের নিজস্ব বৈশিষ্ট্যগুলিও যুক্ত করতে পারে ।
রুবিতে, কোনও শ্রেণি কেবলমাত্র অন্য একক শ্রেণীর উত্তরাধিকারী হতে পারে। (অর্থাত্ একটি শ্রেণি অন্য শ্রেণীর কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত একটি শ্রেণীর কাছ থেকে উত্তরাধিকারী হতে পারে, তবে একক শ্রেণী এক সাথে অনেকগুলি শ্রেণীর উত্তরাধিকারী হতে পারে না)। বেসিকঅবজেক্ট ক্লাসটি রুবির সকল ক্লাসের পিতামাতার ক্লাস। সুস্পষ্টভাবে ওভাররাইড না করা পর্যন্ত এর পদ্ধতিগুলি সমস্ত অবজেক্টের জন্য উপলব্ধ।
রুবি মেশিন ব্যবহার করে একবারে একক শ্রেণীর উত্তরাধিকার অতিক্রম করে।
আমি একটি উদাহরণ দিয়ে ব্যাখ্যা করার চেষ্টা করব।
module Mux
def sam
p "I am an module"
end
end
class A
include Mux
end
class B < A
end
class C < B
end
class D < A
end
আপনি শ্রেণী_নাম.সুপারক্লাস.নাম ব্যবহার করে ট্রেস করতে পারেন এবং যদি আপনি এই শ্রেণিবিন্যাসে বেসিক অবজেক্ট না পান তবে এই প্রক্রিয়াটি করতে পারেন। বেসিকজেক্টটি প্রতিটি ক্লাসে সুপার ক্লাস। ধরা যাক আমরা ক্লাস সি শ্রেণিবদ্ধ গাছ দেখতে চাই।
C.superclass
=> B
B.superclass
=> A
A.superclass
=> Object
Object.superclass
=> BasicObject
আপনি ক্লাস সি এর পুরো শ্রেণিবিন্যাস দেখতে পাচ্ছেন এই পন্থাটি ব্যবহার করে লক্ষ্য করুন আপনি পিতামাত্ত শ্রেণিতে অন্তর্ভুক্ত বা প্রেন্টড মডিউলগুলি পাবেন না।
মডিউল সহ সম্পূর্ণ শ্রেণিবিন্যাস সন্ধান করার জন্য আরও একটি পদ্ধতি রয়েছে। রুবি ডকের পূর্বপুরুষদের মতে । মোডে অন্তর্ভুক্ত / প্রেন্টড মডিউলগুলির একটি তালিকা ফেরত দেয় (নিজে নিজেই মোড)।
C.ancestors
=> [C, B, A, Mux, Object, Kernel, BasicObject]
এখানে, Mux এবং কার্নেল হল মডিউল।
http://rubylearning.com/satishtalim/ruby_inheritance.html
https://en.wikedia.org/wiki/Inheritance_(object-oriented_programming)
B.methods.sortb আপনার পক্ষে যে পদ্ধতির নামটি সন্ধান করছেন তাতে কোনও কিছু আপনাকে একটি সূত্র দেবে।