Samouczki Java

Jawa DOM Wprowadzenie do Javy Rozpocznij Java Składnia Javy Komentarze Java Zmienne Javy Typy danych Java Rzutowanie typu Java Operatory Java Ciągi Java Matematyka Java Java logiczne Java, jeśli...inne Przełącznik Java Java podczas pętli Java dla pętli Przerwa/Kontynuacja w Javie Tablice Java

Metody Java

Metody Java Parametry metody Java Przeciążanie metody Java Zakres Java Rekurencja Java

Klasy Java

Java OOP Klasy/obiekty Java Atrybuty klas Java Metody klas Java Konstruktory Javy Modyfikatory Java Enkapsulacja Javy Pakiety Java / API Dziedziczenie Javy Polimorfizm Javy Klasy wewnętrzne Java Abstrakcja Java Interfejs Java Wyliczenia Java Wejście użytkownika Java Data Java Lista tablic Java Połączona lista Java Java HashMap Zestaw skrótów Java Iterator Javy Klasy opakowujące Java Wyjątki Java Java RegEx Wątki Java Jawa Lambda

Obsługa plików Java

Pliki Java Tworzenie/zapis plików Java Odczytywanie plików Java Usuń pliki Java

Jak to zrobić

Dodaj dwie liczby

Odniesienie do Javy

Słowa kluczowe Java Metody ciągów Java Metody matematyczne w języku Java

Przykłady Javy

Przykłady Javy Kompilator Javy Ćwiczenia Java Quiz Java Certyfikat Java


Abstrakcja Java


Klasy i metody abstrakcyjne

Abstrakcja danych to proces ukrywania pewnych szczegółów i pokazywania użytkownikowi tylko niezbędnych informacji.
Abstrakcję można osiągnąć za pomocą klas abstrakcyjnych lub interfejsów (o czym dowiesz się więcej w następnym rozdziale).

Słowo abstractkluczowe jest modyfikatorem bez dostępu, używanym dla klas i metod:

  • Klasa abstrakcyjna: jest klasą zastrzeżoną, której nie można używać do tworzenia obiektów (aby uzyskać do niej dostęp, musi zostać odziedziczona z innej klasy).

  • Metoda abstrakcyjna: może być używana tylko w klasie abstrakcyjnej i nie ma treści. Ciało jest dostarczane przez podklasę (odziedziczoną z).

Klasa abstrakcyjna może mieć zarówno metody abstrakcyjne, jak i zwykłe:

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}

Z powyższego przykładu nie można stworzyć obiektu klasy Animal:

Animal myObj = new Animal(); // will generate an error

Aby uzyskać dostęp do klasy abstrakcyjnej, musi być ona odziedziczona z innej klasy. Skonwertujmy klasę Animal, której użyliśmy w rozdziale Polimorfizm , na klasę abstrakcyjną:

Pamiętaj z rozdziału Dziedziczenie , że używamy extendssłowa kluczowego do dziedziczenia z klasy.

Przykład

// Abstract class
abstract class Animal {
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Subclass (inherit from Animal)
class Pig extends Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Dlaczego i kiedy używać abstrakcyjnych klas i metod?

Aby osiągnąć bezpieczeństwo - ukryj pewne szczegóły i pokaż tylko ważne szczegóły obiektu.

Uwaga: Abstrakcję można również osiągnąć za pomocą interfejsów , o których dowiesz się więcej w następnym rozdziale.