Overloading,
Overriding, Exception
Overloading dan
Overriding, keduanya merupakan class yang memiliki nama method yang sama. Namun
pada overloading dan overriding memiliki kesamaan dan perbedaan yang dapat
dilihat dari parameternya.
A. OVERLOADING
Overloading
adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan suatu nama
method untuk beberapa method yang memiliki parameter masukan yang berbeda (tipe
maupun jumlah parameter). Overloading memodifikasi secara horizontal method
maupun konstruktor milik kelas super, maupun kelas yang sama.
B. OVERRIDING
Overriding adalah suatu kemampuan
dalam bahasa berorientasi objek untuk mengubah implementasi (menimpa) suatu
method yang dimiliki oleh kelas super ketika kelas super tersebut diturunkan.
Overriding memodifikasi secara vertikal method milik kelas super. Ada dua
alasan mengapa melakukan overriding :
1. Mendefenisikan kembali method kelas induk secara total.
2. Menambahkan behaviour tertentu pada method kelas induk.
C. EXCEPTION
Exception
merupakan suatu objek error khusus yang dibuat ketika terjadi kesalahan pada suatu
program. Setelah suatu objek exception dibuat oleh java, objek tersebut
dikirimkan ke program, proses ini disebut throwing an exception.
Kategori error dalam
program :
1. Syntax error
2. Runtime error
3. Logic error
1. Mendefenisikan kembali method kelas induk secara total.
Membuat Program Overriding.java
class OverRiding {
public
void MethodAsli () {
System.out.println("Method
Milik class OverRiding dijalankan");
}
public
static void main (String [] arqs) {
OverRiding
O = new OverRiding();
O.MethodAsli();
}
}
output :
Membuat Program
SubOverriding.java
class SubOverRiding extends OverRiding {
public
void MethodAsli () {
System.out.println("Method
yang sudah OverRiding dijalankan");
}
public
void MethodAsliSuper() {
System.out.println("Method
pemanggil MethodAsli dijalankan");
super.MethodAsli
();
}
public
static void main (String [] arqs) {
SubOverRiding
SO= new SubOverRiding ();
SO.MethodAsli();
SO.MethodAsliSuper();
}
}
output :
Pratikum
A. Membuat Program
SegiTiga.java
class SegiTiga {
public
SegiTiga (double panjang) {
System.out.println
("\nVariabel = segitiganya sama sisi");
System.out.println
("Panjang = " +panjang);
keliling(panjang);
}
public SegiTiga (double panjang, double sisiMiring)
{
System.out.println
("\n2Variabel = segitiganya sama kaki");
System.out.println
("Panjang = " +panjang+ " sisi miring =" +sisiMiring);
keliling(panjang,sisiMiring);
}
public void keliling(double panjang) {
tampilkanHasil
(panjang*3);
}
public void keliling(double p, double
sM) {
tampilkanHasil
(2*sM+p);
}
protected void tampilkanHasil (double h)
{
System.out.println
("Hasil = " +h);
}
}
B. Membuat Program
MainSegiTiga.java
Class MainSegitiga {
Public
static void main(string [] arqs) {
new
Segitiga(7);
new
Segitiga(4, 7);
}
}
output :
Membuat Program
CobaException.java
class CobaException {
public static void main (String [] arqs) {
int nilai=0;
try {
int
Nilai = Integer.parseInt (arqs[0]) ;
System.out.println
("Nilai yang dimasukkan : "+Nilai);
}
catch(Exception
e) {
System.out.println("Pasti
yang diinput bukan Integer");
}
finally
{
System.out.println("Blok
finally tetap dilakukan");
}
}
}
output :
Membuat Program
PembagianNol.java
class PembagianNol {
public static void main(String[]args) {
System.out.println("Sebelum pembagian");
try {
System.out.println(5/0);
}
catch(Throwable T) {
System.out.println("Terjadi pembagian nol");
}
System.out.println("Sesudah pembagian");
}
}
class PembagianNol {
public static void main(String[]args) {
System.out.println("Sebelum pembagian");
try {
System.out.println(5/0);
}
catch(Throwable T) {
System.out.println("Terjadi pembagian nol");
}
System.out.println("Sesudah pembagian");
}
}
output :
Membuat Program
TesInputData.java
import
java.io.*;
class
TextInputData {
public
static void main (String [] arqs) {
BufferedReader
BR = new BufferedReader (new
InputStreamReader
(System.in));
String
Input ="";
try
{
System.out.println
("Masukan data : ");
Input
= "Salah";
}
finally
{
System.out.println
("Data yang anda masukan adalah " +Input);
}
}
}
catatan :
Perbedaan
antar override dengan overload
Override
- Mendefinisikan method dengan nama sama pada class yang berbeda.
- Konsep dapat di manfaatkan dalam beberapa kasus inheritance, di mana menginginkan penamaan method dengan nama sama namunberbeda dalam impelementasinya.
Overload
- mendefinisikan method dengan nama sama dalam satu class.
- Konsep sering di gunakan dalam penggunaan constructor.
Tidak ada komentar:
Posting Komentar