logo

Abstraktā klase Java valodā

Klase, kas tiek deklarēta ar abstraktu atslēgvārdu, ir pazīstama kā abstrakta klase Java . Tam var būt abstraktas un neabstraktas metodes (metode ar ķermeni).

Pirms Java abstraktās klases apguves vispirms sapratīsim Java abstrakciju.

faktoriāls c

Abstrakcija Java valodā

Abstrakcija ir process, kurā tiek slēpta ieviešanas informācija un lietotājam tiek parādīta tikai funkcionalitāte.

Cits veids, kā lietotājam parāda tikai būtiskas lietas un slēpj iekšējos datus, piemēram, nosūtot SMS, kurā ierakstāt tekstu un nosūtāt ziņojumu. Jūs nezināt iekšējo apstrādi saistībā ar ziņojumu piegādi.

Abstrakcija ļauj koncentrēties uz to, kas objektu dara, nevis kā to dara.

Veidi, kā sasniegt abstrakciju

Ir divi veidi, kā panākt abstrakciju Java

  1. Abstraktā klase (no 0 līdz 100%)
  2. Interfeiss (100%)

Abstraktā klase Java valodā

Klase, kas tiek deklarēta kā abstrakta, ir pazīstama kā an abstraktā klase . Tam var būt gan abstraktas, gan neabstraktas metodes. Tas ir jāpaplašina un jāīsteno tā metode. To nevar iemiesot.

Punkti, kas jāatceras

  • Abstraktā klase ir jādeklarē ar abstraktu atslēgvārdu.
  • Tam var būt gan abstraktas, gan neabstraktas metodes.
  • To nevar iemiesot.
  • Tā var būt konstruktori un arī statiskās metodes.
  • Tam var būt galīgās metodes, kas liks apakšklasei nemainīt metodes pamattekstu.
Java abstraktās klases noteikumi

Abstraktās klases piemērs

 abstract class A{} 

Abstraktā metode Java valodā

Metode, kas ir deklarēta kā abstrakta un kurai nav īstenošanas, ir pazīstama kā abstrakta metode.

Abstraktās metodes piemērs

 abstract void printStatus();//no method body and abstract 

Abstract klases piemērs, kam ir abstrakta metode

Šajā piemērā Bike ir abstrakta klase, kurā ir tikai viena abstrakta metode. Tās realizāciju nodrošina Honda klase.

 abstract class Bike{ abstract void run(); } class Honda4 extends Bike{ void run(){System.out.println('running safely');} public static void main(String args[]){ Bike obj = new Honda4(); obj.run(); } } 
Izmēģiniet to tūlīt
 running safely 

Abstract klases reālā scenārija izpratne

Šajā piemērā Shape ir abstraktā klase, un tās ieviešanu nodrošina klases Taisnstūris un Aplis.

Lielākoties mēs nezinām par ieviešanas klasi (kas ir paslēpta gala lietotājam), un ieviešanas klases objektu nodrošina rūpnīcas metode .

A rūpnīcas metode ir metode, kas atgriež klases gadījumu. Par rūpnīcas metodi mēs uzzināsim vēlāk.

Šajā piemērā, ja veidojat klases Rectangle instanci, tiks izsaukta taisnstūra klases metode draw().

Fails: TestAbstraction1.java

 abstract class Shape{ abstract void draw(); } //In real scenario, implementation is provided by others i.e. unknown by end user class Rectangle extends Shape{ void draw(){System.out.println('drawing rectangle');} } class Circle1 extends Shape{ void draw(){System.out.println('drawing circle');} } //In real scenario, method is called by programmer or user class TestAbstraction1{ public static void main(String args[]){ Shape s=new Circle1();//In a real scenario, object is provided through method, e.g., getShape() method s.draw(); } } 
Izmēģiniet to tūlīt
 drawing circle 

Vēl viens abstraktās klases piemērs Java

Fails: TestBank.java

 abstract class Bank{ abstract int getRateOfInterest(); } class SBI extends Bank{ int getRateOfInterest(){return 7;} } class PNB extends Bank{ int getRateOfInterest(){return 8;} } class TestBank{ public static void main(String args[]){ Bank b; b=new SBI(); System.out.println('Rate of Interest is: '+b.getRateOfInterest()+' %'); b=new PNB(); System.out.println('Rate of Interest is: '+b.getRateOfInterest()+' %'); }} 
Izmēģiniet to tūlīt
 Rate of Interest is: 7 % Rate of Interest is: 8 % 

Abstrakta klase ar konstruktoru, datu dalībnieku un metodēm

Abstraktajai klasei var būt datu dalībnieks, abstraktā metode, metodes pamatteksts (neabstraktā metode), konstruktors un pat galvenā () metode.

instantiēta java

Fails: TestAbstraction2.java

 //Example of an abstract class that has abstract and non-abstract methods abstract class Bike{ Bike(){System.out.println('bike is created');} abstract void run(); void changeGear(){System.out.println('gear changed');} } //Creating a Child class which inherits Abstract class class Honda extends Bike{ void run(){System.out.println('running safely..');} } //Creating a Test class which calls abstract and non-abstract methods class TestAbstraction2{ public static void main(String args[]){ Bike obj = new Honda(); obj.run(); obj.changeGear(); } } 
Izmēģiniet to tūlīt
 bike is created running safely.. gear changed 

Noteikums: ja klasē ir abstrakta metode, tai jābūt abstraktai.

 class Bike12{ abstract void run(); } 
Izmēģiniet to tūlīt
 compile time error 

Noteikums: ja paplašināt abstraktu klasi, kurai ir abstrakta metode, jums ir jānodrošina metodes ieviešana vai jāpadara šī klase abstrakta.


Vēl viens reāls abstraktās klases scenārijs

Abstrakto klasi var izmantot arī, lai nodrošinātu zināmu īstenošanu saskarne . Šādā gadījumā galalietotājs nedrīkst būt spiests ignorēt visas saskarnes metodes.

Piezīme. Ja esat iesācējs java, vispirms apgūstiet saskarni un izlaidiet šo piemēru.

 interface A{ void a(); void b(); void c(); void d(); } abstract class B implements A{ public void c(){System.out.println('I am c');} } class M extends B{ public void a(){System.out.println('I am a');} public void b(){System.out.println('I am b');} public void d(){System.out.println('I am d');} } class Test5{ public static void main(String args[]){ A a=new M(); a.a(); a.b(); a.c(); a.d(); }} 
Izmēģiniet to tūlīt
 Output:I am a I am b I am c I am d