Sunday, January 8, 2012

Java - Abstract class vs. Interface

මම අද කියන්නේ abstract class එකක් සහ interface එකක් අතර වෙනස.
abstract class එකක් ගත්තොත් එකේ abstract methods වගේම non-abstract methods තියෙන්න පුලුවන්.කට්ටිය දැන් හිතන්නේ මොන මේ abstract method කියන්නේ කියලා. මෙහෙමයි සරලවම කිවුවොත් abstract method එකකින් කියන්නේ මෙන්න මෙහෙම method එකක් තියනවා ඒක උඹට පාවිච්චි කරන්න ඔනේ නම් උබට ඔනේ විදියට code කරගනින් වගේ වැඩක්.
abstract method එකක method body එකක් නෑ.
e.g
[code]public Sound getSound(Bird bird);
public void getNumber(int no);
e.g abstract class
[code]abstract class BirdAbstract{
   abstract public Sound getSound(Bird bird); // abstract method
   public void getBirdCount(){ // non abstract method // no compile error
       // something here
       return something
   }
}
interface එකේ තියන වෙනස තමයි මේකේ තියන හැම method එකක්ම අපි abstract දැම්මත් නැතත් implicitly abstract method

inetface Birdinterface{
   public Sound getSound(Bird bird); // abstract method no CE
   abstract public void doSomething(); // abstract method no CE
   public void getBirdCount(){ // non abstract method // this is a CE interface can't have non abstract methods
       // something here
       return something
   }
}
අපි interface එකක් හරි abstract class එකක් extend/implement කලොත් ඒවගේ තියන ඔක්කොම abstract method අපේ පළවෙනි concreat class( abstract නොවන )  එකේදි අනිවා override කරන්න ඔනේ.

1 comment: