Java abstract Keyword.pdf

SudhanshiBakre1 65 views 7 slides Sep 05, 2023
Slide 1
Slide 1 of 7
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7

About This Presentation

https://firstcode.school/java-abstract-keyword/


Slide Content

JavaabstractKeyword
Javaisanobject-orientedprogramminglanguagethatprovidesthe“abstract”
keywordtoallowprogrammerstodefineincompleteclassesthatcannotbe
instantiated.Abstractclassesareusedastemplatesforcreatingconcreteclasses
andaremeanttobeextendedbysubclasses.Theyprovideablueprintforcreating
objectsthatcanbecustomizedtosuitspecificneeds.Itisimportanttounderstand
theuseofabstractclassesforJavaprogrammingasitallowsforcodereusability
andsavestime.
Thisarticleexplainsthe“abstract”keywordinJava,itsbenefitsandlimitations.It
alsocovershowtouseitinJavaprogramming.Additionally,thearticlecompares
abstractclassesandinterfacesinJava.Italsoillustrateswhentouseeach.
AbstractKeywordinJava:Key
Characteristics
Instantiationofabstractclasses:
Anabstractclasscan’tbeinstantiateddirectly.Instead,itisdesignedtobeextended
byotherclasses,whichcanprovideconcreteimplementationsofitsabstract
methods.
Methodbody:
Amethodwithoutanimplementationissaidtobeabstract.Itterminateswitha
semicolonratherthanamethodbodyandisdeclaredusingtheabstractkeyword.

Subclassesofanabstractclassmustprovideaconcreteimplementationofall
abstractmethodsdefinedintheparentclass.
Abstractandconcretemethods:
Abstractclassescancontainbothabstractandconcretemethods.Concrete
methodsareimplementedintheabstractclassitselfandcanbeusedbyboththe
abstractclassanditssubclasses.
Constructors:
Abstractclassescanhaveconstructors,whichareusedtoinitializeinstance
variablesandperformotherinitializationtasks.Constructorsinconcretesubclasses
ofteninvoketheconstructorsofabstractclassesastheycannotbeconstructed
directly.
Instancevariables:
Instancevariablescontainedintheabstractclassesmaybeutilizedbyboththe
abstractclassanditssubclasses.Subclassescanaccessthesevariablesdirectly,
justlikeanyotherinstancevariables.
Interfaces:
Abstractclassescanimplementinterfaces,whichdefineasetofmethodsthatmust
beimplementedbyanyclassthatimplementstheinterface.Inthiscase,theabstract
classmustprovideconcreteimplementationsofallmethodsdefinedintheinterface.
Abstractclasses
Definitionandexplanationofabstractclasses

InJava,anabstractclassisaclassthatcannotbeinstantiatedandisusedasa
baseclassforotherclasses.It’sdesignedtobeextendedbyotherclasses,andit
containsabstractmethods,concretemethods,andinstancevariables.Anabstract
classprovidesacommoninterfaceforasetofsubclasses,whichallowsfor
polymorphisminJavaprogramming.
Examplesofabstractclassesandtheirimplementation
inJava
AnexampleofanabstractclassinJavaistheShapeclass.AShapeclasscanbe
extendedbyvariousotherclasses,likeCircles,rectangles,Triangles,etc.Eachof
theseclassescandefineitsmethodswhilestillinheritingthepropertiesoftheShape
class.Here’sanexampleofhowtodefineanabstractclassinJava:
publicabstractclassShape{
privateStringcolor;
publicShape(Stringcolor){
this.color=color;
}
publicStringgetColor(){
returncolor;
}
publicvoidsetColor(Stringcolor){
this.color=color;
}
publicabstractdoublegetArea();

}
Intheabovecode,theShapeclassisdeclaredasabstractusingtheabstract
keyword.Ithasaconstructorandtwomethods,getColor()andsetColor(),whichare
notabstract.Italsohasanabstractmethod,getArea().
Advantagesofusingabstractclasses
TheadvantagesofusingabstractclassesinJavaare:
■Itprovidesacommoninterfaceforasetofsubclasses,whichallowsfor
polymorphisminJavaprogramming.
■Itcanimplementcommonfunctionalityandstatesharedbyall
subclasses.
■Itcanenforceacontractthatsubclassesmustimplementabstract
methods.
■Itcansimplifythedesignoflargeandcomplexsoftwaresystemsby
providingastructureforinheritance.
HowtouseAbstractClassesand
Methods
TousetheabstractclassinJava,youneedtocreateasubclassthatextendsthe
abstractclassandimplementstheabstractmethods.Hereisanexample:
publicclassCircleextendsShape{
privatedoubleradius;
publicCircle(Stringcolor,doubleradius){
super(color);
this.radius=radius;
}

publicdoublegetRadius(){
returnradius;
}
publicvoidsetRadius(doubleradius){
this.radius=radius;
}
publicdoublegetArea(){
returnMath.PI*radius*radius;
}
}
Intheabovecode,theCircleclassextendstheShapeabstractclassand
implementsthegetArea()method.
Abstractclassesandmethodsareusefulwhenyouwanttocreateagroupofrelated
classesthatsharesomecommonfunctionality.Theyalsohavetheirownunique
features.Theyprovideawaytoenforceconsistencyamongtherelatedclasses
whilestillallowingforcustomization.
Abstractkeywordrulesandbest
practices:
Thereareseveralrulesandbestpracticestokeepinmindwhenworkingwiththe
abstractkeywordinJava.
BestPractices:

■Theabstractkeywordcanonlybeusedwithclassesandmethods.
■Anabstractclasscancontainconstructorsandstaticmethods.
■Ifaclassextendsanabstractclass,itmustimplementatleastoneofthe
abstractmethods.
■Anabstractclasscancontainoverloadedabstractmethods.
■Thelocalinnerclassmaybedeclaredabstract.
■Thethrowclausecanbeusedtodeclaretheabstractmethod.
Avoid:
■Donotusetheabstractkeywordwithvariablesandconstructors.
■Anabstractclasscannotbeinstantiated.
■Anabstractmethoddoesnotcontainthebody.
■Donotusetheabstractkeywordwiththefinal.
■Donotdeclareabstractmethodsasprivateorstatic.
■Anabstractmethodcannotbesynchronized.
AbstractClassesvs.Interfaces
InJava,bothabstractclassesandinterfacesareusedtodefineabstractions.
Abstractclassesareusedtodefineacommonstructureandbehaviourforagroup
ofclassesthatshareacommonsetoffeatures.Ontheotherhand,interfacesare
usedtodefineacommonsetofmethodsthatcanbeimplementedbymultiple
unrelatedclasses.
Abstractclassescanhavebothabstractandnon-abstractmethods.Atthesame
time,interfacescanonlyhaveabstractmethods.Thisisthekeydifferencebetween
abstractclassesandinterfaces.Aclassiscapableofextendingonlyoneabstract
class,butitcanimplementmultipleinterfaces.
Whenmustaninterfacebeusedoveranabstract
class:

■Whenyouneedtodefineacommonbehaviourforagroupofunrelated
classes
■Whenyouneedtoprovidemultipleinheritancestoaclass
Examplesofwhentouseanabstractclassoveran
interface:
■Whenyouneedtodefineacommonstructureandbehaviourforagroup
ofrelatedclasses
■Whenyouneedtoprovidedefaultimplementationsforsomeofthe
methods
Conclusion
Inconclusion,understandingthe“abstract”keywordiscrucialforeffectiveJava
programming.Abstractclassesandmethodsallowdeveloperstodefineandenforce
ablueprintforthebehaviourofchildclasses.Theyprovidestructureandabstraction
tocode,makingitmoreefficientandeasiertomaintain.Byusingabstractclasses
andmethods,developerscanwritemoreflexible,extensible,andreusablecode,
reducingdevelopmenttimeandcost.
Tags