Friday, January 29, 2021

Java Programming sinhala tutorial - Inheritance - Part 26

 Inheritance

    Java වල OOP concept 4 ක් පවතිනවා. ඒ තමයි,
  1. Inheritance
  2. Encapsulation
  3. Polymorphism
  4. Abstraction
    අද අපි inheritance ගැන දැන ගමු. යම් කිසි කෙනෙකු විසින් නිර්මාණය කල class එකක features (fields and methods) වෙනත් නිර්මාණයක් සදහා භාවිතා කිරීම inheritance යනුවෙන් සරලවම අපිට හදුනා ගන්න පුළුවන්. මේ සදහා extends keyword එක පාවිච්චි කරන්න පුළුවන්.
    කලින් නිර්මාණය කර තිබු හා එහි features inherit කිරීමට ඉඩ දෙන class එක super class (base class/ parent class) එක ලෙසද  එම  features inherit කරගෙන අලුතින් නිර්මාණය කරන class එක sub class (derived class/ extended class/ child class) එක ලෙසද හදුන්වයි.
    Inheritance සංකල්පය reusability සදහා උපකාරී වේ.


    අපි sub class එකට super class එක extend කල විට super class එකෙහි සියලුම private නොකළ methods හා  variables sub class object එකේ memory එකට ලබා ගන්නවා. ඒ නිසා sub class එක මගින් super class එකේ features අපිට ලබා ගන්න පුළුවන්. Sub class reference එකට super class එක ගැන knowledge එකක් පවතින නිසා sub class reference එක මගින් super class එකේ methods හා  variables access කරන්න පුළුවන්.

    මේ inheritance ක්‍රියාවලියේදී subclass object එක පමණයි create වෙන්නේ. Inheritance ක්‍රියාවලියේදී super class එකේ byte code එක sub class file එකෙහි නොපවතී. Sub class එක හා super class එක අතර logical link එකක් පමණක් පවතී. Sub class object එකක් නිර්මාණයේදී පළමුව super class එක template object එකක් ලෙස load වේ. ඊට පසු sub class එක  template object එකක් ලෙස load වේ. ඊට පසු sub class object එක නිර්මාණයවේ. එම නිසා sub class එකක් වෙනත් computer එකක run කරවීමට super class එකද එම computer එකට ඇතුලත් කල යුතු වේ.
    
    

    Sub class එක නිර්මාණයේදී super class එකෙහි methods හා variables ද sub class object එකේ නිර්මාණය වන බව ඔයාලා දැන් දන්නවනේ. කලින් ලිපියෙන් මං object  initializer ගැන විස්තර කලානේ. object  initializer variables initialize කිරීමේදී පළමුව super class එකෙහි variables ද ඉන් පසු sub class එකෙහි variables ද initialize කරයි. Sub class එක run වන විට super class එකෙහි කුමන constructor එක run විය යුතු දැයි ඇතුලත් කර නොමැති නම් compiler විසින් sub class එකේ constructor එක තුල super(); command එක ඇතුලත් කරයි. එවිට object initializer පළමුව super class එකෙහි default constructor එක run කර ඊට පසු sub class එකෙහි constructor එක run කරයි.
    අපට super class එකෙහි parameter සහිත වෙනත් constructor එක run කළ යුතු නම් ඊට අදාල  parameter සහිත super command එක ඇතුලත් කළ යුතු වේ.



    අපි ඊලග ලිපියෙන් Java Encapsulation ගැන විස්තර ඉගෙන ගනිමු.

- චමෝදි -

1 comment: