Java >> Java tutorial >  >> Tag >> protected

Hvad er beskyttet i Java, og hvordan implementeres det?

Java indeholder et sæt søgeord kaldet Adgangsmodifikatorer som hjælper os med at indstille synligheden af ​​en klasse, grænseflade, variabel, datamedlem, metode, konstruktør osv. Der er 4 typer adgangsmodifikatorer, standard, offentlig, privat og beskyttet, som understøttes i Java. I denne artikel vil jeg udelukkende fokusere på beskyttet i Java og hjælpe dig med at få klar indsigt i det.

Nedenfor er de emner, jeg vil diskutere i denne artikel:

  • Hvad er beskyttet i Java
  • Beskyttet implementering

Hvad er beskyttet i Java?

Som før nævnt er protected in Java en adgangsmodifikator, der hjælper en programmør med at tildele synligheden af ​​en klasse, dens medlemmer, grænseflader osv. Når klassemedlemmer erklæres som beskyttede i Java, er de kun tilgængelige inden for samme. pakke såvel som til de direkte underklasser af basisklassen. Mens du bruger beskyttede søgeord i Java, skal du huske på, at kun klassemedlemmer kan erklæres som beskyttede. Klasser og grænseflader kan ikke erklæres som beskyttede i Java.

Nu tænker du måske, hvorfor klasser og grænseflader ikke kan beskyttes?

Nå, hvis du tænker logisk, bliver svaret ret klart. Hvis en klasse gøres beskyttet, vil den kun være synlig for de klasser, der er til stede i den samme pakke. Nu, som jeg har nævnt før, når noget er gjort beskyttet i Java, er det også synligt for dets underklasser.

Men her er en tvetydighed. For at andre klasser kan udvide en beskyttet klasse, skal forældreklassen være synlig. Hvordan vil du udvide noget, som ikke er synligt i første omgang? Dette forårsager således tvetydighed og oprettelse af beskyttede klasser er ikke tilladt i Java.

Lad os nu forstå, hvorfor grænseflader ikke kan gøres beskyttede. Nå, i Java er elementerne generelt lavet beskyttet, så deres implementeringer kan deles blandt andre. Men i tilfælde af grænseflader har de ingen implementering, så det nytter ikke noget at dele dem. Derfor skal alle de metoder, der er til stede i grænsefladerne, være offentlige, så enhver klasse eller struts nemt kan implementere dem.

Således kan du kun erklære metoderne og datamedlemmerne som beskyttede i Java og ikke klasserne eller grænsefladerne. Dette hjælper med at indkapsle koden ved at begrænse tilgængeligheden for klassemedlemmerne. Det hjælper også med at forhindre misbrug af data.

Beskyttet implementering

Lad os nu prøve at implementere det, vi har lært indtil nu. Så her vil jeg oprette to klasser, der hver tilhører en separat pakke.

EduProtected.java i pakken edu1

package edu1;

public class EduProtected {
		 protected void message(String disp){
		     System.out.println("Package 1 message recieved: "+ disp);
		 }
}

EduSubClass.java i pakken edu2

package edu2;
import edu1.EduProtected;

public class EduSubClass extends EduProtected {
	public static void main(String[] args) {
		EduProtected show = new EduProtected();
        // invokes message() from EduProtected class
        show.message("Hello from package2 subclass");
	}
}

Output:

Besked pakke 1 modtaget:Hej fra underklasse pakke2

Dette bringer os til slutningen af ​​denne artikel. Hvis du vil vide mere om Java, kan du se vores andre Java-blogs.

Nu hvor du har forstået, hvad der er beskyttet i Java, kan du tjekke Java-certificeringsuddannelse af Edureka, en betroet online læringsvirksomhed med et netværk af mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE og SOA trænings- og certificeringskursus er designet til studerende og professionelle, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-frameworks som Hibernate &Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel, så vender vi tilbage til dig så hurtigt som muligt.


Java tag