cześć, dzisiaj mam taki problem. W jednej sławniejszych książek miałem za zadanie zrobić generator losowych figur. (to w zasadzie było już zrobione) . Jednak w ćwiczeniach miałem coś takiego: "Dodaj nową metodę wypisującą wiadomość do klasy bazowej w pliku Shapes.java, nie przesłaniaj jej jednak w klasie pochodnej. Wytłumacz co się wtedy dzieje. Następnie przesłoń tę metodę w jednej z klas pochodnych ( jednak nie we wszystkich) i zaobserwuj co się dzieje.
// zapomniałem dodać kodu :)
package polymorphism.shape;
public class Shape {
public void draw() {}
public void erase() {}
}
package polymorphism.shape;
public class Square extends Shape {
public void draw() {System.out.println("Square.draw()"); }
public void erase() {System.out.println("Square.draw()"); }
}
package polymorphism.shape;
public class Circle extends Shape{
public void draw() {System.out.println("Circle.draw()");}
public void erase() {System.out.println("Circle.erase()");}
}
package polymorphism.shape;
public class Triangle extends Shape {
public void draw() {System.out.println("Triangle.draw()"); }
public void erase() {System.out.println("Triangle.draw()"); }
}package polymorphism.shape;
import java.util.Random;
public class RandomShapeGenerator {
private Random rand = new Random(47);
public Shape next() {
switch(rand.nextInt(13)) {
default:
case 0: return new Circle();
case 1: return new Square();
case 2: return new Triangle();
}
}
}
package polymorphism.shape;
public class Shapes {
public void met(){ } // metoda do wypisywania komunikatu?
private static RandomShapeGenerator gen = new RandomShapeGenerator();
public static void main(String[] args) {
Shape s[] = new Shape[9];
for(int i=0; i<s.length; i++)
s[i]=gen.next();
for(Shape shp: s)
shp.draw();
}
}
Kompletnie nie wiem jak się zabrać do tego. Jeszcze przesłonić może bym dał radę ale nie wiem jak wypisać wiadomość do bazowej klasy.