Isang Kumpletong Panimula sa Mga Klase ng Abstract sa Java



Tutulungan ka ng artikulong ito sa isang detalyadong diskarte patungo sa Mga Klase ng Abstract sa Java kasama ang mga halimbawa upang maunawaan ang konsepto sa isang mas mahusay na paraan.

Mga Klase na Abstract sa tulungan ang mga gumagamit na makamit ang abstraction, na kung saan ay ang pinakamahalagang kasanayan sa programa na nakatuon sa object na sinusundan sa panahon ng proseso ng pagdidisenyo ng software. Sa artikulong ito, tatalakayin natin ang terminolohiya ng Mga Klase ng Abstract sa pamamagitan ng sumusunod na docket.

Ano ang Mga Abstract Class sa Java?

Mga Klase na Abstract sa kumilos bilang isang hangganan sa pagitan ng pamamaraan ng pagpapatupad at pag-andar nito. Ginagamit ito upang ipagpalit ang pagpapaandar sa pagitan ng Kongkreto miyembro ng klase at ang Abstract Klase.





Abstract-Classes-in-Java-Edureka

Ang Mga Klase ng Abstract ay isinasaalang-alang bilang mga klase na nagtatago ng Pagpapatupad ng Paraan mga detalye mula sa gumagamit at ipakita lamang ang Pamamaraan ng Pag-andar. Idineklara ang mga ito gamit ang keyword mahirap unawain . Maaaring isama ang mga pamamaraang ito Abstract at Hindi Abstract pamamaraan sa kanila.

labis na pag-andar sa halimbawa ng c ++

Bakit kailangan natin ng isang Abstract Classes sa Java?

Kailangan namin ng Mga Abstract Class sa Java para sa mga sumusunod na kadahilanan:



  • Suporta ng Mga Klase ng Abstract Resolusyon ng Dynamic na Paraan sa run-time
  • Tinutulungan nila ang mga gumagamit na makamit Loose Coupling
  • Pinaghihiwalay ng Mga Klase ng Abstract ang Kahulugan ng Paraan mula sa Mana Mga Sub-Class
  • Ibinibigay nila ang Default na Pag-andar ng tinukoy na pamamaraan para sa lahat ng Mga Sub-Class
  • Nagbibigay ang mga klase ng abstract a Template para sa mga tiyak na klase sa hinaharap
  • Pinapayagan ang klase ng abstract Code Muling kakayahang magamit

Mga Panuntunan para sa paggamit ng Mga Klase ng Abstract sa Java

Upang magpatupad ng isang Abstract Class sa Java, kailangan naming sundin ang mga patakaran tulad ng inilarawan sa ibaba:



  • Ang isang abstract na klase ay dapat ideklara gamit ang mahirap unawain keyword.
  • Maaaring isama ang mga klase sa abstract mahirap unawain at hindi abstract paraan.
  • Hindi maaaring maging isang Klase ng Abstract instantiated.
  • Maaari silang isama tagapagtayo at static paraan.
  • May kasamang Abstract Class panghuli paraan.

Mga paraan upang makamit ang Abstraction sa Java

Ang proseso ng Abstraction sa Java ay maaaring makamit sa pamamagitan ng mga sumusunod na dalawang pamamaraan tulad ng nabanggit sa ibaba:

  1. Pagpapatupad ng isang Abstract Class
  2. Pagpapatupad ng isang Interface

Ang Syntax para sa Mga Klase ng Abstract

Ang Syntax para sa pagtukoy sa Mga Klase ng Abstract at Mga Paraang Abstract ay ang mga sumusunod:

c ++ pag-recursion
abstract class Edureka {}
abstract class na Pamamaraan ()

Praktikal na Mga Halimbawa ng Mga Klase na Abstract

// Abstract Class

package Abstract public abstract class Tao {pribadong pangalan ng String pribadong String gender public Person (String nm, String gen) {this.name = nm this.gender = gen} public abstract void Pag-aaral () @Override public String toString () {return ' Pangalan = '+ this.name +' :: Kasarian = '+ this.gender}}

// Student Class

package Abstract pampublikong klase Ang mag-aaral ay nagpapalawak ng Taong {pribadong int StudentID publiko ng Mag-aaral (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Studying () {if (StudentID == 0 ) {System.out.println ('Hindi Pag-aaral')} iba pa {System.out.println ('Sumusunod sa isang Degree sa Bachelor of Engineering')}} pampublikong static void main (String args []) {Person student = bagong Mag-aaral ('Priya', 'Babae', 0) Taong mag-aaral1 = bagong Mag-aaral ('Karan', 'Lalaki', 201021) Taong mag-aaral2 = bagong Mag-aaral ('Kumari', 'Babae', 101021) Taong mag-aaral3 = bagong Mag-aaral (' John ',' Lalaki ', 201661) mag-aaral. Pag-aaral () mag-aaral1. Pag-aaral () mag-aaral2. Pag-aaral () mag-aaral. 3. Pag-aaral () System .out.println (mag-aaral. SaString ()) System. ()) System.out.println (student2.toString ()) System.out.println (student3.toString ())}}

Output:

Hindi Nag-aaral
Pagpapatuloy sa isang Degree sa Bachelor of Engineering
Pagpapatuloy sa isang Degree sa Bachelor of Engineering
Pagpapatuloy sa isang Degree sa Bachelor of Engineering
Pangalan = Priya :: Kasarian = Babae
Pangalan = Karan :: Kasarian = Lalaki
Pangalan = Kumari :: Kasarian = Babae
Pangalan = John :: Kasarian = Lalaki

Pagkakaiba sa pagitan ng Interface at Abstract Class

Interface Abstract Class
Maaari lamang magkaroon ng Abstract na ParaanMaaaring magkaroon ng Abstract at Non-Abstract na Paraan
Mayroon lamang itong Final VariableMay kasama itong Hindi Pangwakas na Mga variable
Mayroon lamang itong Static at Final na mga variableMayroon itong Static, Non-Static, final, Non-Final na mga variable
Hindi ipapatupad ang Abstract ClassMaaaring magpatupad ng isang Interface
Ipinatupad gamit ang 'nagpapatupad' na KeywordIpinatupad gamit ang 'umaabot' na Keyword
Maaari lamang palawigin ang isang InterfaceMaaaring pahabain ang Mga Klase at Interface ng Java
Ang mga miyembro ay Pampubliko bilang defaultAng mga miyembro ay maaaring Pribado at Protektado

// Halimbawa ng Klase ng Abstract

package abstactVSinterface abstract class Hugis {String objectName = '' Hugis (String name) {this.objectName = name} abstract public double area () abstract public void draw ()} class Rectangle extends Shape {int haba, lapad Parihaba (int haba, int lapad, pangalan ng String) {super (pangalan) this.length = haba this.width = width} @Override public void draw () {System.out.println ('Iguhit ang Parihaba')} @Orride public double area () {return (doble) (haba * lapad)}} Ang klase ng Circle ay umaabot sa Hugis {doble pi = 3.14 int radius Circle (int radius, String name) {super (name) this.radius = radius} @Override public void draw () { System.out.println ('Iguhit ang bilog')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args ) {Shape rect = new Rectangle (20, 30, 'Rectangle') System.out.println ('Lugar ng parihaba:' + rect.area ()) Hugis ng hugis = bagong Circle (20, 'Cicle') System.out .println ('Lugar ng bilog ay:' + circle.area ())}}

Output:

Lugar ng parihaba: 600.0
Lawak ng bilog ay: 628.0

// Halimbawa ng Interface

package absVSint interface Shape {void draw () double area ()} class Rectangle nagpapatupad ng Hugis {int haba, lapad Parihaba (int haba, int lapad) {this.length = haba this.width = width} @Orrride public void draw () {System.out.println ('Ang rektanggulo ay iginuhit')} @Orride ang pampublikong dobleng lugar () {return (doble) (haba * lapad)}} ipapatupad ng klase ng Circle ang Hugis {doble pi = 3.14 int radius Circle (int radius) {this.radius = radius} @Override public void draw () {System.out.println ('Iguhit ang Circle')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Lugar ng parihaba:' + rekturang.area ()) Hugis ng hugis = bagong Circle (20) System.out.println ('Lugar ng bilog:' + circle.area ())}}

Output:

Lugar ng parihaba: 600.0
Lugar ng bilog: 628.0

para saan ginagamit ang data science

Sa pamamagitan nito, natapos na kami sa artikulong ito. Inaasahan kong naunawaan mo ang kahalagahan ng Abstraction, Syntax, pagpapaandar, Mga Panuntunan ng Abstraction sa Java at mga praktikal na halimbawa na nauugnay sa kanila.

Ngayon na naintindihan mo ang mga pangunahing kaalaman sa Java, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer. Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa pag-program ng Java at sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring .

May tanong ba sa amin? Nabanggit ito sa seksyon ng mga komento ng blog na 'Abstract Classes in Java' na ito at babalikan ka namin sa lalong madaling panahon.