Nadpisywanie metody calculateArea w Shape
Dziedziczenie i polimorfizm - Podstawy Javy (Java)
Przeciążanie metod: Nie występuje w tym przykładzie (ale polega na definiowaniu metod o tej samej nazwie, ale z różnymi parametrami). Nadpisywanie metod: Klasy Rectangle i Circle nadpisują metodę calculateArea() z klasy bazowej Shape, aby zapewnić własną implementację dla prostokąta i koła. Adnotacja @Override: Informuje, że dana metoda jest nadpisywana z klasy bazowej, co pozwala kompilatorowi sprawdzić poprawność.
// Klasa bazowa
class Shape {
// Metoda do obliczania pola - ogólna wersja
public double calculateArea() {
System.out.println("Nieokreślony kształt, brak wzoru na pole.");
return 0;
}
}
// Klasa pochodna
class Rectangle extends Shape {
private double width;
private double height;
// Konstruktor
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
// Nadpisywanie metody calculateArea
@Override
public double calculateArea() {
return width * height;
}
}
// Klasa pochodna
class Circle extends Shape {
private double radius;
// Konstruktor
public Circle(double radius) {
this.radius = radius;
}
// Nadpisywanie metody calculateArea
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
// Klasa główna
public class Main {
public static void main(String[] args) {
// Tworzenie obiektów
Shape shape = new Shape();
Rectangle rectangle = new Rectangle(5, 10);
Circle circle = new Circle(7);
// Wywoływanie metod
System.out.println("Pole kształtu: " + shape.calculateArea());
System.out.println("Pole prostokąta: " + rectangle.calculateArea());
System.out.println("Pole koła: " + circle.calculateArea());
}
} Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Podstawy Javy · Zaloguj się, aby zapisać postęp na koncie.