មេរៀនទី១៥: Method Overriding

ប្រសិនបើ subclass (class កូន) ដែលមាន method ដូចគ្នាបានប្រកាសនៅក្នុង class មេ វាគឺជា method overriding។ ប្រសិនបើ subclass បែងចែកលក្ខណ:ពិសេស នៃការអនុវត្តន៍ របស់ method  ដែលបានផ្តល់អោយទៅ class មេ។
អត្ថប្រយោជន៍នៃការប្រើ Method Overriding
•    Method Overriding ត្រូវបានប្រើដើម្បីផ្តល់ការអនុវត្តពិសេសនៃ method ដែលបានផ្តល់ដោយ super class។
•    Method Overriding ត្រូវបានប្រើសម្រាប Runtime

តួនាទីសម្រាប់ Method Overriding
1.    method ត្រូវតែមានឈ្មោះដូច ក្នុង parent class
2.    method ត្រូវតែមានឈ្មោះដូច parameter ដូចក្នុង parent class.
3.    ត្រូវតែជា IS-A relationship (inheritance)។
ស្វែងយល់ពីបញ្ហាដោយមិនប្រើ method overriding
class Vehicle{
void run(){System.out.println(“Vehicle is running”);}
}
class Bike extends Vehicle{

public static void main(String args[]){
Bike obj = new Bike();
obj.run();
}
}
Output:Vehicle is running
ឧទាហរណ៍នៃ method overriding
ក្នុងឧទាហរណ៍ នេះបានកំណត់ រត់ method ក្នុង subclass កំណត់ក្នុង parent class ប៉ុន្តែវាអនុវត្តចំនួនខ្លះ។ ឈ្មោះ name និង parameter នៃ method គឺដូចនឹង IS-A relationship រវាងបណ្តា classes។
class Vehicle{
void run(){System.out.println(“Vehicle is running”);}
}
class Bike2 extends Vehicle{
void run(){System.out.println(“Bike is running safely”);}

public static void main(String args[]){
Bike2 obj = new Bike2();
obj.run();
}
Output:Bike is running safely

ឧទាហរណ៍ពិតនៃ Java Method Overriding
Javaclass Bank{
int getRateOfInterest(){return 0;}
}

class SBI extends Bank{
int getRateOfInterest(){return 8;}
}

class ICICI extends Bank{
int getRateOfInterest(){return 7;}
}
class AXIS extends Bank{
int getRateOfInterest(){return 9;}
}

class Test2{
public static void main(String args[]){
SBI s=new SBI();
ICICI i=new ICICI();
AXIS a=new AXIS();
System.out.println(“SBI Rate of Interest: “+s.getRateOfInterest());
System.out.println(“ICICI Rate of Interest: “+i.getRateOfInterest());
System.out.println(“AXIS Rate of Interest: “+a.getRateOfInterest());
}
}
Output:
SBI Rate of Interest: 8
ICICI Rate of Interest: 7
AXIS Rate of Interest: 9