1 JĘZYKI PROGRAMOWANIA 2 Laboratorium, lista nr 5
Transkrypt
1 JĘZYKI PROGRAMOWANIA 2 Laboratorium, lista nr 5
dr inż. Jacek Lewandowski JĘZYKI PROGRAMOWANIA 2 Laboratorium, lista nr 5. Dziedziczenie, Polimorfizm, Klasy Abstrakcyjne, Interfejsy. Zadanie. Interfejsy GeometricObject i Resizable 1. Napisz interface o nazwie GeometricObject, ktory deklaruje dwie abstrakcyjne metody (ich sygnatury) getParameter() i getArea(), jak pokazane na diagramie klasy powyżej. Podpowiedz: public interface GeometricObject { public double getPerimeter(); ...... } 2. Napisz implementacje klasy Circle, ze zmienna protected radius (promień), która implementuje interface GeometricObject. Podpowiedz: public class Circle implements GeometricObject { // Zmienne prywatne ...... // Konstructor ...... // Implementacja metody zdefiniowanej w interfejsie GeometricObject @Override public double getPerimeter() { ...... } ...... } Bioinformatyka, sem. 2 1 dr inż. Jacek Lewandowski 3. 4. Napisz program TestCircle który przetestuje metody zdefiniowane w klasie Circle. Pamiętaj o użyciu interfejsu i polimorfizmu. Klasa ResizableCircle jest definiowana jako podklasa klasy Circle, która również implementuje interfejs Resizable, jak przedstawiono na diagramie powyżej. Interfejs Resizable deklaruje abstrakcyjna metodę resize(), która modyfikuje rozmiar (np. Promień, bok itd.) mnożąc go przez odpowiedni procent. Napisz interface Resizable oraz klasę ResizableCircle która implementuje ten interfejs. Podpowiedz: public interface Resizable { public double resize(...); } public class ResizableCircle extends Circle implements Resizeable { // Konstructor public ResizableCircle(double radius) { super(...); } // Implementuje metody zdefiniowane w interface Resizable @Override public double resize(int percent) { ...... } } 5. Napisz program TestResizableCircle który przetestuje metody zdefiniowane w klasie ResizableCircle. Pamiętaj o użyciu interfejsu i polimorfizmu Bioinformatyka, sem. 2 2