18  Klasy abstrakcyjne

  1. Zdefiniuj abstrakcyjną klasę WorkTool z polami name typu String oraz productionYear typu int. Dodaj metodę abstrakcyjną use(), która będzie symulować użycie narzędzia. Następnie zdefiniuj klasy Hammer, Screwdriver i Saw, które dziedziczą po klasie WorkTool i implementują metodę use(). Stwórz listę tablicową odpowiednich 5 obiektów i wywołaj dla nich napisaną metodę.

  2. Zdefiniuj abstrakcyjną klasę ComputerGraphic z polami width, height typu int oraz fileName typu String. Dodaj abstrakcyjne metody loadFile() i saveFile(). Następnie zdefiniuj klasy Bitmap i Vector, które dziedziczą po klasie ComputerGraphic i implementują metody loadFile() oraz saveFile(). Stwórz listę tablicową odpowiednich 5 obiektów i wywołaj dla nich napisaną metodę.

  3. Zdefiniuj abstrakcyjną klasę ElectronicDevice z polami manufacturer typu String, model typu String oraz productionYear typu int. Dodaj abstrakcyjne metody turnOn() i turnOff(). Następnie zdefiniuj klasy Smartphone, Television i Laptop, które dziedziczą po klasie ElectronicDevice i implementują metody turnOn() oraz turnOff(). Stwórz listę tablicową odpowiednich 5 obiektów i wywołaj dla nich napisaną metodę.