Polymorfism i Java - Arbeta, typer och vikt med exempel

Innehållsförteckning:

Anonim

Introduktion till polymorfism i Java

Polymorfism definieras som ett begrepp där man tillsammans med hjälp av en åtgärd på många sätt kan utföras. Ordet har sitt ursprung i de två grekiska orden, som är såväl poly som morfer. Här, som du kanske antyder, betyder "poly" många, liksom "morfer", många former. Därför innebär ordet polymorfism många former. Låt oss nu förstå polymorfism i java i detalj.

Hur fungerar polymorfism i Java?

Polymorphism är en OOO-programmeringskarakteristik. När vi använder det har en klass förmågan att visa många funktioner även om de visar det gemensamma gränssnittet. Därför kan vi anta att det långa ordet faktiskt berättar ett mycket enkelt koncept.

Det som är värt att notera om polymorfism är att hela arbetskoden som finns i många klasser egentligen inte behöver förstå klassen som används för den på samma sätt som den är samma.

Låt oss anta det verkliga exemplet på polymorfism. Låt oss anta knappen. Ni vet alla att om vi tillämpar lite tryck kommer ni att kunna trycka på knappen men vi kommer inte att veta resultatet för att sätta tryck på knappen och syftet med användningen. Så, påpek att här att ta hand om är att resultatet inte kommer att påverka proceduren som används.

Så det grundläggande målet med polymorfism är att göra föremål som är utbytbara beroende på behoven.

Typer av polymorfism i Java

De två typerna av polymorfism är kompileringstid polymorfism och polymorfism av körtid. Polymorfism för kompileringstid utförs genom överbelastning av metoden och polymorfism av runtime genom att man överskrider metoden.

Runtime-polymorfism, även kallad Dynamic Method Dispatch är en process där uppmaning till en åsidosatt metod upplöses vid körning trots kompileringstiden. Här kallas den åsidosatta metoden genom en referensvariabel för en överordnad klass. Runtime-polymorfism kan inte heller uppnås av datamedlemmar.

Betydelsen av polymorfism i Java

Om vi ​​kasserar såväl dynamisk polymorfism som statisk polymorfism, finns det i programmering några av programmeringsegenskaperna hos Java som uppvisar polymorfism som är annan än dessa två viktiga typer.

De är dessa - Tving, överbelastning av operatörer och polymorfiska parametrar.

Tvång

Låt oss försöka få betydelsen av tvång genom detta exempel. Anta att det finns värdet på strängen som ska vara co-värde: Antag att det andra numret som har fått värdet 2. Vad skulle inträffa när du kommer att sammanfatta detta strängvärde tillsammans med detta nummer? Resultatet som vi får ut av denna sammankoppling skulle vara ”samvärde: 2”. Detta kallas tvång. Detta är en konvertering som är av implicit typ som utförs för att förebygga fel.

Operatörens överbelastning

När vi börjar med begreppet överbelastning av operatörer, låt mig titta på ett scenario. Antag att det finns strängen som har värdet "Operera" och 2: a som har värde som "Överbelastning". Då skulle vi använda plussymbolen (+) på samma sätt som tillägget av 2 nummer. Detta (+) skulle sammanfalla. Om vi ​​överväger två heltal skulle det att lägga till dessa två siffror returneras. Närhelst en symbol eller operatör har förmågan att ändra tolkningen med tanke på proceduren som har använts, kallas den polymorfistyp som görs känd som Operatör överbelastning.

Polymorfiska parametrar

Det betyder att tillåta åtkomst till alla objekt på något av dessa nedanstående sätt som anges under -

  1. Användning av en referensvariabel som tillhör endera föräldraklassen.
  2. Användning av en referensvariabel som hör till klassen där den finns.

Polymorfism Räckvidd

Bindning betyder anslutning av ett metodsamtal till en metodkropp. Det finns två slags bindningar:

  • 1 st är statisk bindning vilket betyder närhelst typen av objekt har bestämts under kompileringstiden.
  • 2: a är dynamisk bindning vilket betyder närhelst typen av objekt har bestämts under körning.

Det enda skälet till varför polymorfismen krävs ligger eftersom det är enormt nödvändigt för att genomföra arv. Dessutom spelar det en mycket viktig roll som gör att objekten kan ärva flera strukturer i delningen av gränssnittet. Polymorfism har nämnts tydligt som bara en som kartläggs för många.

Exempel på polymorfism i Java

Nedan är de olika exemplen på Polymorphism i Java:

Exempel 1 - Java-program för att visa upp överbelastning av metod

Koda:

class methodOverload (
static int multi(int x, int y)
(
return x * y;
)
// Method with the same name but with 2 double arguments
static double multi(double x, double y)
(
return x * y;
)
)
class Main (
public static void main(String() args)
(
System.out.println(methodOverload.multi(6, 2));
System.out.println(methodOverload.multi(1.2, 1.2));
)
)

Produktion:

Exempel # 2 - Java-program för att visa överbelastning av operatörer

Koda:

class operator (
void oper(String s, String s2)
(
String s = s + s2;
System.out.println("Concatenated String is"
+ s);
)
void oper(int a, int b)
(
int c = a + b;
System.out.println("Sum is : " + c);
)
)
class Main (
public static void main(String() args)
(
operator o = new operator();
o.oper(1, 2);
o.oper("hi", "bye");
)
)

Produktion:

Exempel 3 - Java-program för metodöverbelastning

Koda:

class Multi (
// Method with 2 parameter
static int Multi(int a, int b)
(
return a * b;
)
static int Multi(int a, int b, int c)
(
return a * b * c;
)
)
class Main (
public static void main(String() args)
(
System.out.println(Multi.Multi(2, 3));
System.out.println(Multi.Multi(2, 3, 3));
)
)

Produktion:

Slutsats

Det enda skälet till varför polymorfismen krävs ligger eftersom dess koncept är enormt nödvändigt vid genomförandet av arv. Dessutom spelar det en mycket viktig roll som gör att objekten kan ärva flera strukturer i delningen av gränssnittet. Polymorfism har nämnts tydligt som bara en som kartläggs för många.

Rekommenderade artiklar

Detta är en guide till polymorfism i Java. Här diskuterar vi bearbetning av polymorfism i Java med dess typer, och betydelse tillsammans med olika exempel och kodimplementering. Du kan också titta på följande artiklar för att lära dig mer -

  1. Polymorfism i C #
  2. JTextField i Java
  3. Överbelastning och överbestyrning i C ++
  4. Vad är Java-arv?
  5. Överbelastning i Java
  6. Python överbelastning
  7. Komplett guide till arv i Python
  8. Typer och hanteringsfel i JavaScript
  9. Fördelar med statisk bindning och dynamisk bindning