Abstract class merupakan suatu class yang memiliki minimal satu abstract methode (method
yang belum terdapat implementasinya) dan tidak dapat diinstantiasi. Kelas
turunan harus mengimplementasikan semua method abstract. Kata kunci abstract
tidak dapat digunakan untuk konstruktor dan method static.
ANOLOGI CLASS YANG ABSTRACT
Suatu class dapat diinstansiasi menjadi objek, misal class Dosen damat di instansiasi menjadi wilis, bayu, lina, namun tidak mungkin dapat menginstansiasi class MahlukHidup, class hewan, dan class manusia, sebab class tersebut terlalu umun (Abstract), class seperti inilah yang disebut class abstract. dibutuhkan class turunan yang lebih khusus.
ANOLOGI METHOD YANG ABSTRACT
Bila class MahlukHidup mempunyai method bernafas, maka tidak dapat ditentukan cara suatu mahluk hidup tersebut bernafas (dengan paru - paru, insang, atau stomata), method seperti inilah yang disebut method abstract. Dibutuhkan class turunan yang khusus dan method override dari method yang abstract.
Bila class MahlukHidup mempunyai method bernafas, maka tidak dapat ditentukan cara suatu mahluk hidup tersebut bernafas (dengan paru - paru, insang, atau stomata), method seperti inilah yang disebut method abstract. Dibutuhkan class turunan yang khusus dan method override dari method yang abstract.
Berikut adalah contoh program menurut versinya :
Versi C# :
using System; namespace AbstractClass_C_ { abstract class Mahasiswa { // kelas induk private String nama, nim; public void getdatax() { Console.Write(" Input Nama : "); nama = Console.ReadLine(); Console.Write(" Input NIM : "); nim = Console.ReadLine(); } public void putdatax() { Console.WriteLine(" Nama : " + nama); Console.WriteLine(" NIM : " + nim); } } class mhs1 : Mahasiswa { // kelas turunan private String matkul; int nilai; //Mahasiswa mhs = new Mahasiswa(); public void getdata() { getdatax(); Console.Write(" Mata Kuliah : "); matkul = Console.ReadLine(); Console.Write(" Nilai Ujian : "); nilai = int.Parse(Console.ReadLine()); } public void putdata() { putdatax(); Console.WriteLine(" Mata Kuliah : " + matkul); Console.WriteLine(" nilai : " + nilai); } } ////kelas abstrak// class mhs2 : Mahasiswa { } class Program { static void Main(string[] args) { mhs1 m1 = new mhs1(); mhs2 b1 = new mhs2(); Console.WriteLine(); Console.WriteLine("Input Data Mahasiswa 1"); m1.getdatax(); Console.WriteLine("\nInput Data Mahasiswa 2"); b1.getdatax(); Console.WriteLine("\nData Mahasiswa 1"); m1.putdatax(); Console.WriteLine("\nData Mahasiswa 2"); b1.putdatax(); Console.ReadKey(true); } } }
Versi Java :
package abstractclassjava; import java.util.*; abstract class Mahasiswa { // kelas induk public Scanner input = new Scanner(System.in); private String nama; long nim; public void getdatax() { System.out.print(" Input Nama : "); nama = input.next(); System.out.print(" Input NIM : "); nim = input.nextLong(); } void putdatax(){ System.out.println(" Nama : " + nama); System.out.println(" NIM : " + nim); } } class mhs1 extends Mahasiswa { // kelas turunan private String matkul; int nilai; //Mahasiswa mhs = new Mahasiswa(); public void getdata() { getdatax(); System.out.print(" Mata Kuliah : "); matkul = input.next(); System.out.print(" Nilai Ujian : "); nilai = input.nextInt(); } void putdata() { putdatax(); System.out.println(" Mata Kuliah : " + matkul); System.out.println(" nilai : " + nilai); } } ////kelas abstrak// class mhs2 extends Mahasiswa { } public class Main { public static void main(String[] args) { mhs1 m1 = new mhs1(); mhs2 b1 = new mhs2(); System.out.println(); System.out.println("Input Data Mahasiswa 1"); m1.getdatax(); System.out.println("\nInput Data Mahasiswa 2"); b1.getdatax(); System.out.println("\nData Mahasiswa 1"); m1.putdatax(); System.out.println("\nData Mahasiswa 2"); b1.putdatax(); } }
Versi C++ :
using namespace std; const int batas = 80; using namespace std; class Mahasiswa { // kelas induk private: char nama [batas]; unsigned long nim; public: void getdata() { cout << " Input Nama : "; cin >> nama; cout << " Input NIM : "; cin >> nim; } void putdata() { cout << " Nama : " << nama << endl; cout << " NIM : " << nim; } }; class mhs1 : public Mahasiswa { // kelas turunan private: char matkul [batas]; int nilai; public: void getdata() { Mahasiswa::getdata(); cout << " Mata Kuliah : "; cin >> matkul; cout << " Nilai Ujian : "; cin >> nilai; } void putdata() { Mahasiswa::putdata(); cout << endl << " Mata Kuliah : "<< matkul; cout << endl << " nilai : "<< nilai; } }; class mhs2:public Mahasiswa { ////kelas abstrak// }; int main() { mhs1 m1; mhs2 b1; cout<cout<<"Input Data Mahasiswa 1" << endl; m1.getdata(); cout<<"\nInput Data Mahasiswa 2" << endl; b1.getdata(); cout<<"\nData Mahasiswa 1" << endl; m1.putdata(); cout<< endl << "\nData Mahasiswa 2" << endl; b1.putdata(); cout << endl; system("PAUSE"); }
Link Download : Here !!!
0 komentar:
Posting Komentar