Inheritance, Override, Interface Dan Class Diagram
Inheritance, Override, Interface Dan Class Diagram
// hanya dapat dikenali oleh kelas A dan turunan- //setA(10); // SALAH, setA() tidak dikenal di sini
turunannya c = nilai;}
protected int getA() { public int getC() {
return a; return c;}
}} public void showC() {
class B extends A { //System.out.println("Nilai a : " + getA());// SALAH
//a = nilaiA; // SALAH, karena a tidak dikenali di sini B obj = new B(40, 50); // melakukan instansiasi terhadap kelas B
b = nilaiB; } obj.setA(100);
▪ Proses pendefinisian method dengan nama sama ini disebut dengan overload
int bagi(int a,int b){
return a/b;
}
double bagi(double a,double b){
return a/b;
}
Kode diatas legal
int bagi(int a,int b){
return a/b;
}
double bagi(int a,int b){
return a/b;
}
Kode diatas salah
class Pembagian {
// Mendefinisikan method dengan dua parameter bertipe int
int bagi(int a, int b) {
return a/b;
}
// Mendefinisikan method dengan dua parameter bertipe double
double bagi(double a, double b) {
return a/b;
}
}
class DemoOverload1 {
public static void main(String[] args) {
int x;
double y;
Pembagian b = new Pembagian();
x = b.bagi(10, 4);
y = b.bagi(10.0, 4.0);
System.out.println("Hasil bagi tipe int = " + x);
System.out.println("Hasil bagi tipe double = " + y);
}
}
class myclass {
// Mendefinisikan method dengan parameter int dan String
void tulis(int a, String s) {
System.out.println("int: " + a + ", String: \"" + s + "\"");
}
// Mendefinisikan method dengan parameter String dan int
void tulis(String s, int a) {
System.out.println("int: " + a + ", String: \"" + s + "\"");
}
}
class DemoOverload3 {
public static void main(String[] args) {
myclass c = new myclass();
c.tulis(4, "Contoh method pertama");
c.tulis("Contoh method kedua", 8);
}
}
▪ Override
▪ Nama method pada suatu kelas sama dengan nama method
pada kelas induknya dengan jumlah/daftar/tipe parameter
yang sama persis
▪ Overload
▪ Nama method pada suatu kelas sama dengan nama method
pada kelas tersebut dengan jumlah/daftar/tipe parameter
yang berbeda
▪ Nama method pada suatu kelas sama dengan nama method
pada kelas turunannya dengan jumlah/daftar/tipe parameter
yang berbeda