// 1. Абстрактный класс
abstract class Mebel {
protected double rozmiar; // размер
protected double masa; // масса
public Mebel(double rozmiar, double masa) {
this.rozmiar = rozmiar;
this.masa = masa;
}
// Абстрактные методы, которые должны быть реализованы в подклассах
public abstract void wyswietlDane();
public abstract void zmienParametry(double nowyRozmiar, double nowaMasa);
}
// 2. Производный класс: Krzeslo (Стул)
class Krzeslo extends Mebel {
private String nazwa;
public Krzeslo(String nazwa, double rozmiar, double masa) {
super(rozmiar, masa);
this.nazwa = nazwa;
}
@Override
public void wyswietlDane() {
System.out.println("Mebel: " + nazwa + " | Rozmiar: " + rozmiar + " | Masa: " + masa + " kg");
}
@Override
public void zmienParametry(double nowyRozmiar, double nowaMasa) {
this.rozmiar = nowyRozmiar;
this.masa = nowaMasa;
System.out.println("Parametry krzesla zostaly zmienione.");
}
}
// 2. Производный класс: Stol (Стол)
class Stol extends Mebel {
private String nazwa;
public Stol(String nazwa, double rozmiar, double masa) {
super(rozmiar, masa);
this.nazwa = nazwa;
}
@Override
public void wyswietlDane() {
System.out.println("Mebel: " + nazwa + " | Rozmiar: " + rozmiar + " | Masa: " + masa + " kg");
}
@Override
public void zmienParametry(double nowyRozmiar, double nowaMasa) {
this.rozmiar = nowyRozmiar;
this.masa = nowaMasa;
System.out.println("Parametry stolu zostaly zmienione.");
}
}
// Класс для проверки работы программы
public class Main {
public static void main(String[] args) {
Krzeslo mojekrzeslo = new Krzeslo("Krzeslo Biurowe", 1.2, 5.5);
Stol mojStol = new Stol("Stol Debowy", 2.5, 20.0);
mojekrzeslo.wyswietlDane();
mojStol.wyswietlDane();
System.out.println("--- Aktualizacja ---");
mojStol.zmienParametry(3.0, 25.0);
mojStol.wyswietlDane();
}
}