Saskarne vs abstraktā klase Java: kāda ir atšķirība?

Satura rādītājs:

Anonim

Kas ir saskarne?

Saskarne ir projekts, ko var izmantot klases ieviešanai. Saskarne nesatur konkrētas metodes (metodes, kurām ir kods). Visas saskarnes metodes ir abstraktas metodes.

Saskarni nevar instantizēt. Tomēr klases, kas ievieš saskarnes, var instantizēt. Saskarnes nekad nesatur mainīgos, bet tajos var būt publiski statiski galīgie mainīgie (ti, nemainīgi klases mainīgie)

Kas ir abstraktā klase?

Klase, kuras deklarācijā ir abstrakts atslēgvārds, tiek saukta par abstrakto klasi. Abstraktajās klasēs jābūt vismaz vienai abstraktai metodei. , ti, metodes bez ķermeņa. Tam var būt vairākas konkrētas metodes.

Abstraktās klases ļauj jums izveidot rasējumus konkrētām nodarbībām. Bet mantotajai klasei jāīsteno abstraktā metode.

Abstraktas klases nevar instantizēt.

Svarīgi interfeisu izmantošanas iemesli

  • Saskarnes tiek izmantotas, lai panāktu abstrakciju.
  • Paredzēts, lai atbalstītu dinamisko metožu izšķirtspēju darbības laikā
  • Tas palīdz jums panākt brīvu savienojumu.
  • Ļauj nodalīt metodes definīciju no mantojuma hierarhijas

Svarīgi abstraktās klases izmantošanas iemesli

  • Abstraktās klases piedāvā apakšklases noklusējuma funkcionalitāti.
  • Nodrošina veidni nākamajām konkrētajām klasēm
  • Palīdz jums noteikt kopēju saskarni tās apakšklasēm
  • Abstraktā klase ļauj atkārtoti izmantot kodu.

Saskarne Vs. Abstrakta klase

Abstrakta klase ļauj jums izveidot funkcionalitāti, kuru apakšklases var ieviest vai ignorēt, turpretī saskarne ļauj jums norādīt tikai funkcionalitāti, bet ne to ieviest. Klase var paplašināt tikai vienu abstraktu klasi, savukārt klase var ieviest vairākas saskarnes.

Parametri Saskarne Abstraktā klase
Ātrums Lēns Ātri
Vairāki mantojumi Ieviesiet vairākas saskarnes Tikai viena abstrakta klase
Struktūra Abstraktas metodes Abstraktas un konkrētas metodes
Kad lietot Nākotnes uzlabošana Lai izvairītos no neatkarības
Mantošana / ieviešana Klase var ieviest vairākas saskarnes Klase var mantot tikai vienu kopsavilkuma klasi
Noklusējuma ieviešana Pievienojot interfeisam jaunas lietas, tas ir murgs, lai atrastu visus izpildītājus un ieviestu nesen definētus sīkumus. Abstract klases gadījumā varat izmantot noklusējuma ieviešanas priekšrocības.
Piekļuves modifikatori Interfeisam nav piekļuves modifikatoru. Viss interfeisa iekšienē tiek uzskatīts par publisku modifikatoru. Abstract Class var būt piekļuves modifikators.
Kad lietot Labāk ir izmantot interfeisu, ja dažādas realizācijas koplieto tikai metodes parakstu. Vērtību tipu polimorfā hierarhija. Tas jāizmanto, ja dažādām viena veida realizācijām ir kopīga uzvedība.
Datu lauki saskarnē nevar būt datu lauki. klasē var būt datu lauki.
Vairāku mantojumu noklusējums Klase var ieviest daudzas saskarnes. Klase pārmanto tikai vienu abstraktu klasi.
Īstenošana Saskarne ir abstrakta, tāpēc tā nevar nodrošināt kodu. Abstraktā klase var dot pilnīgu noklusējuma kodu, kas būtu jāatsvītro.
Piekļuves modifikatoru izmantošana Jūs nevarat izmantot piekļuves modifikatorus metodei, rekvizītiem utt. Varat izmantot abstraktu klasi, kurā ir piekļuves modifikatori.
Lietošana Saskarnes palīdz noteikt klases perifērās spējas. Abstrakta klase nosaka klases identitāti.
Definētie lauki Nevar definēt nevienu lauku Abstrakta klase ļauj definēt gan laukus, gan konstantes
Mantojums Interfeiss var mantot vairākas saskarnes, bet nevar mantot klasi. Abstrakta klase var mantot klasi un vairākas saskarnes.
Konstruktors vai destruktors Interfeiss nevar deklarēt konstruktorus vai destruktorus. Abstraktā klase var pasludināt konstruktorus un destruktorus.
Paplašinājumu ierobežojums Tas var paplašināt jebkuru saskarņu skaitu. Tas vienlaikus var pagarināt tikai vienu klasi vai vienu abstraktu klasi.
Abstrakts atslēgvārds Abstraktā interfeisa atslēgvārds nav obligāts, lai deklarētu metodi kā abstraktu. Abstraktā klasē abstrakts atslēgvārds ir obligāts, lai deklarētu metodi kā abstraktu.
Klases tips Interfeisam var būt tikai publiskas abstraktas metodes. Abstraktā klase ir aizsargājusi un publiski abstraktas metodes.

Java saskarnes un abstraktās klases koda paraugs

Tālāk ir koda paraugs, lai izveidotu saskarni un abstraktu klasi Java

Saskarnes sintakse

interface name{//methods}

Java saskarnes piemērs:

interface Pet {public void test();}class Dog implements Pet {public void test() {System.out.println("Interface Method Implemented");}public static void main(String args[]) {Pet p = new Dog();p.test();}}

Abstrakta klases sintakse

abstract class name{// code}

Abstrakts klases piemērs:

abstract class Shape {int b = 20;abstract public void calculateArea();}public class Rectangle extends Shape {public static void main(String args[]) {Rectangle obj = new Rectangle();obj.b = 200;obj.calculateArea();}public void calculateArea() {System.out.println("Area is " + (obj.b * obj.b));}}