Perbedaan antara Metode Virtual dan Abstrak

Perbedaan Utama: Metode abstrak adalah metode yang dideklarasikan tetapi tidak memiliki implementasi. Metode virtual digunakan untuk implementasi polimorfisme berbasis tipe. Kelas turunan memiliki fleksibilitas untuk mengimplementasikan kembali metode virtual kelas dasar dengan menggunakan kata kunci 'override'.

Dalam C #, kata kunci abstrak dapat digunakan dengan kelas dan metode. Metode abstrak adalah metode yang tidak memiliki bentuk implementasi apa pun. Namun, logika implementasi diperoleh oleh kelas non-abstrak yang berasal dari mereka. Ini dicapai dengan mengganti metode itu. Karena tidak adanya implementasi aktual, tubuh metode tetap kosong. Penting untuk dicatat bahwa deklarasi metode abstrak hanya mungkin dalam kelas abstrak. Kelas yang tidak dapat diinisialisasi dikenal sebagai kelas abstrak. Kelas yang mewarisi dari kelas abstrak harus mengimplementasikan semua metode yang dinyatakan sebagai abstrak di kelas abstrak.

Sebagai contoh -

public class abstrak exampleAbstractClass

{

public void exampleabstractMethod ();

public void nonAbstractMethod ()

{

Console.WriteLine ("Implementasi didefinisikan dalam metode");

}

kelas normalNonAbstractClass: exampleAbstractClass

{

public override void exampleabstractMethod ()

{

Console.WriteLine ("Mengganti exampleabstractMethod dari class exampleAbstractClass");

}

}

Virtual juga merupakan kata kunci yang terkait dengan modifikasi metode, properti, pengindeks atau deklarasi acara. Penggunaan kata kunci ini memungkinkan modifikasi entitas yang dinyatakan dalam kelas turunan. Dalam contoh ini, kelas turunan telah menimpa metode virtual yang dideklarasikan di kelas dasar.

Basis kelas

{

Uji virtual void publik ()

{

Console.WriteLine ("Base.Test");

}

}

class Berasal: Base

{

public override void Test ()

{

Console.WriteLine ("Derived.Test");

}

}

Metode virtual digunakan untuk implementasi polimorfisme berbasis tipe. Kelas turunan memiliki fleksibilitas untuk menerapkan kembali metode virtual kelas dasar dengan menggunakan kata kunci override. Baik virtual dan abstrak tidak dapat digunakan bersama dengan pengubah statis atau virtual atau menimpa.

Perbandingan antara Metode Virtual dan Abstrak:

Metode Virtual

Metode Abstrak

Definisi

Metode virtual digunakan untuk implementasi polimorfisme berbasis tipe.

Metode abstrak adalah metode yang dideklarasikan tetapi tidak memiliki implementasi.

Pelaksanaan

Ya, bisa ada implementasinya

Tidak, tidak dapat memiliki implementasi apa pun

Perlu diganti

Tidak wajib

Wajib

Kata kunci yang digunakan untuk membedakannya dari jenis metode lain

Virtual

Abstrak

Kelas

Kelas yang berisi metode virtual dapat digunakan.

Kelas yang berisi metode abstrak tidak bisa dipakai. Itu hanya bisa diwariskan.

Cakupan

Ruang lingkup metode virtual hanya untuk anggota.

Ruang lingkup metode abstrak untuk anggota dan kelas.

Metode yang akan dieksekusi (tipe kelas objek-basis)

Implementasi induk akan dipanggil hanya dalam kasus di mana tidak ada implementasi disediakan di kelas konkret.

Implementasi konkret

Metode yang akan dieksekusi (tipe kelas objek-beton)

Implementasi konkret

Implementasi konkret

Direkomendasikan

Artikel Yang Berhubungan

  • perbedaan antara: Perbedaan antara Nokia Lumia 620 dan Sony Xperia T

    Perbedaan antara Nokia Lumia 620 dan Sony Xperia T

    Perbedaan utama: Salah satu smartphone terbaru di bawah merek adalah Nokia Lumia 620. Nokia Lumia 620 ditujukan untuk pembeli entry-level yang ingin mencoba Windows Phone 8 tetapi tidak mampu menghabiskan terlalu banyak untuk itu. Sony Xperia T adalah model oleh Sony yang dirilis pada Agustus 2012. Itu adalah salah satu dari beberapa model pertama yang dirilis Sony setelah putus dengan Ericsson
  • perbedaan antara: Perbedaan antara C ++ dan Visual C ++

    Perbedaan antara C ++ dan Visual C ++

    Perbedaan utama: C ++ adalah bahasa pemrograman untuk tujuan umum, tetapi dikembangkan dari bahasa pemrograman C awalnya. Ini dikembangkan oleh Bjarne Stroustrup di Bell Labs mulai tahun 1979. C ++ awalnya bernama C with Classes. Berganti nama menjadi C ++ pada tahun 1983. Visual C ++, di sisi lain, bukan bahasa pemrograman sama sekali
  • perbedaan antara: Perbedaan antara Abstrak dan Beton dalam Bahasa

    Perbedaan antara Abstrak dan Beton dalam Bahasa

    Perbedaan Utama: Istilah 'abstrak' mengacu pada kemampuan untuk memikirkan konsep yang berada di luar kotak, konsep yang tidak dapat dirasakan atau dialami hanya dengan menggunakan panca indera. Kata benda atau konsep konkret adalah sesuatu yang biasanya dapat dialami dengan menggunakan panca indera seseorang: sentuhan, rasa, bau, penglihatan dan suara
  • perbedaan antara: Perbedaan antara Samudra dan Laut

    Perbedaan antara Samudra dan Laut

    Perbedaan Utama: Lautan adalah kumpulan besar air yang ada di Bumi. Laut adalah badan besar air asin yang mungkin atau mungkin tidak terhubung ke laut. Lautan dan lautan sama-sama badan air dan istilah ini sering digunakan secara bergantian karena kurangnya definisi yang tepat. Badan air membentuk hidrosfer yang meliputi 71% Bumi
  • perbedaan antara: Perbedaan antara Baja dan Stainless Steel

    Perbedaan antara Baja dan Stainless Steel

    Perbedaan Utama: Baja adalah paduan, yang berarti bahwa ia dibuat dengan mencampurkan berbagai elemen yang berbeda menjadi satu. Elemen dasar utama dalam baja adalah besi. Stainless Steel adalah jenis baja khusus. Ia memiliki semua sifat baja. Namun, ini juga tidak korosif, yang pada dasarnya berarti tidak dapat berkarat
  • perbedaan antara: Perbedaan antara Hipnosis dan Hipnoterapi

    Perbedaan antara Hipnosis dan Hipnoterapi

    Perbedaan utama: Hipnosis adalah suatu proses, sedangkan hipnoterapi sebenarnya adalah bentuk psikoterapi yang menggunakan hipnosis. Di sebuah pertunjukan sulap, melihat seseorang menari atau bertindak seperti monyet di bawah persepsi hipnosis cukup menghibur dan lucu. Tapi itu membuat Anda bertanya-tanya, apakah hipnosis itu nyata
  • perbedaan antara: Perbedaan antara Sony Xperia Z Tab dan Karbonn Cosmic Smart Tab 10

    Perbedaan antara Sony Xperia Z Tab dan Karbonn Cosmic Smart Tab 10

    Perbedaan Utama: Sony baru-baru ini mengumumkan jajaran ponsel pintar dan tablet yang dirubah. Seiring dengan ponsel andalan baru Sony Xperia Z, perusahaan juga telah menambahkan tablet baru, Sony Xperia Z Tab. Tablet ini mendukung layar sentuh kapasitif TFT 10, 1 inci dan dibuat menggunakan teknologi Sony Mobile BRAVIA Engine 2
  • perbedaan antara: Perbedaan antara Demonstrate dan Illustrate

    Perbedaan antara Demonstrate dan Illustrate

    Perbedaan Utama: Ilustrasi menggunakan gambar, teks tambahan, gambar dan diagram untuk menguraikan sesuatu. Di sisi lain, menunjukkan menjelaskan melalui tindakan. Bahasa Inggris adalah bahasa yang cukup rumit bagi orang-orang yang bukan penduduk asli. Ada banyak kata yang mirip dengan ejaan tetapi memiliki arti yang berbeda dengan dunia, sementara ada beberapa kata yang terlihat sangat berbeda namun memiliki arti yang sama
  • perbedaan antara: Perbedaan antara HTC Butterfly dan Nokia Lumia 920

    Perbedaan antara HTC Butterfly dan Nokia Lumia 920

    Perbedaan utama: HTC Butterfly adalah ponsel kelas atas oleh HTC Corporation. HTC Butterfly dijual dalam empat varian: Droid DNA; J Butterfly HTL21; Butterfly X920d; dan Butterfly X920e. Mereka semua ditenagai dengan prosesor Quad-core 1.5 GHz Krait. HTC Droid memiliki Quadcomm MDM615m, sedangkan varian Butterfly memiliki chipset Qualcomm APQ8064

Pilihan Editor

Perbedaan antara Cek dan Cek Elektronik

Perbedaan Utama: Cek atau cek mengacu pada dokumen yang mengesahkan dan memberikan instruksi untuk memesan sejumlah pembayaran tertentu dari rekening bank. Cek sebagai istilah digunakan untuk merujuk cek kertas biasa, sedangkan cek elektronik adalah versi elektronik dari pemeriksaan kertas. Cek dan cek elektronik (eCheck) sama-sama merujuk pada hal yang sama, tetapi masih istilah elektronik yang dilampirkan dengan cek membawa banyak peningkatan dalam pemeriksaan kertas dasar