/ / co to jest implementacja klasy w java? - java, klasa abstrakcyjna

Co to jest implementacja klasy w Javie? -java, Abstrakcja Klasa

Po raz pierwszy próbowałem użyć java.awt.Graphics i natknąłem się na wiele nieporozumień.

Graphics gp = new Graphics();

a kompilator zgłosił błąd mówiący, że nie można utworzyć instancji klasy abstrakcyjnej. Spojrzałem na dokumentację oracle java, a następnie spróbowałem:

import java.awt.Graphics;
public abstract class GUI extends Graphics{

public void painter(){
GUI gp = new GUI();
gp.drawString("Hello People!",2,10);
}
}

Mimo to pokazuje ten sam błąd: GUI jest abstrakcyjny, nie można go utworzyć

Nie mam pojęcia o klasach abstrakcyjnychi wdrożenie. Udało mi się jednak zdobyć trochę wiedzy w dokumentacji Oracle. Ale nadal jestem zdezorientowany, proszę, ktoś mi pomoże. Dziękuję bardzo!!!!

Próbowałem także usunąć abstract scope of GUI, but the compiler again threw another error saying: GUI does not override the abstract methoddispose (); `w java.awt.Graphics ();

Odpowiedzi:

0 dla odpowiedzi № 1

Utwórz podklasę JComponent zamiast Graphics. Wystąpienie Graphics jest następnie przekazywany do paintComponent metoda:

class GUI extends JComponent {
public void paintComponent(Graphics g) {
super.paintComponent(g);

g.drawString("Hello People!", 2, 10);
}
}

Jeśli spróbujesz utworzyć instancję Graphics lub sama podklasa, wtedy nie będą użytecznym sposobem na jej użycie.


0 dla odpowiedzi nr 2

Najlepiej byłoby użyć Graphics2D i wykonać casting z grafiką.


0 dla odpowiedzi № 3

Klasa abstrakcyjna to taka, która informuje, co robić, wraz z implementacją normalnej metody, która może być używana przez jej klasy potomne.
dla e.g możesz zdefiniować klasę Pojazd jako abstrakcję, która określi zachowanie innych klas pojazdów. Inne klasy muszą rozszerzyć tę klasę pojazdów i zapewnić implementację metod abstrakcyjnych.

nie można utworzyć obiektu klasy Abstract, aby użyć klas abstrakcyjnych, należy je rozszerzyć o inną klasę, a następnie można utworzyć obiekt klasy potomnej. więcej referenec tutaj


0 dla odpowiedzi nr 4

Nie chcesz reimplementować całej grafikistos; nie reimplementuj grafiki. Zamiast tego musisz uzyskać kontekst graficzny z jakiegoś miejsca; jest to zazwyczaj obsługiwane przez zestaw narzędzi AWT, po prostu zastępujesz void paint(Graphics g) w twoich komponentach. Zobacz także: http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#getGraphics() .


0 dla odpowiedzi № 5

Klasa abstrakcyjna to klasa, której nie można utworzyć. Jedynym celem jest rozszerzenie klas.

Klasa abstrakcyjna jest klasą uznaną za abstrakcyjną - może lub może nie obejmują metod abstrakcyjnych. Nie można utworzyć instancji klas abstrakcyjnych, ale można je subklasować.

Metoda abstrakcyjna to metoda zadeklarowana bez implementacja (bez nawiasów klamrowych, po której następuje średnik), jak to:

abstract void moveTo (double deltaX, double deltaY); Jeśli klasa obejmuje metody abstrakcyjne, a następnie sama klasa musi zostać zadeklarowana streszczenie, jak w:

public abstract class GraphicObject {
// declare fields
//declare nonabstract methods
abstract void draw(); }

Głównym celem klasy abstrakcyjnej jest użycie wspólnego kodu do użycia w podklasach, ale klasa abstrakcyjna nie powinna mieć własnych instancji.

Możesz przeczytać więcej na ten temat tutaj: Abstrakcyjne metody i klasy


-1 dla odpowiedzi № 6

Usunąć abstract:

import java.awt.Graphics;
public class GUI extends Graphics{

public void painter(){
GUI gp = new GUI();
gp.drawString("Hello People!",2,10);
}
}

-1 dla odpowiedzi № 7

To dlatego, że musisz stworzyć klasę, która się rozszerza GUI lub użyj już zdefiniowanego, który również się rozszerza GUI.

Również możesz usunąć abstract słowo kluczowe, aby użyć tego, które masz.