Witam serdecznie
Na zadanie na uczelnie mam wykonać "projekt", ktory ma za zadanie nauczyć mnie impementacji interfejsu.
Niestety przykład podany w materiałach wykładowych niezbyt pomógł więc proszę o pomoc.
Po kolei
- Najpierw należy zdefiniować interfejs FiguraI z metodami: oblicz pole, oblicz obwod, wyświetl pole, wyswietl obwod
'''
package lab3;
public interface FiguraI {
double oblicz_pole ();
double oblicz_obwod ();
void wyswietl_pole ();
void wyswietl_obwod ();
}
'''
2. jako kolejny krok stworzyc klase abstrakcyjną FiguraA, ma zawierać pole nazwa, konstruktor z parametrem String ustawiający nazwę figury, konstruktor bez parametrów - ustawia nazwę figury na "Figura", metodę wyswietl_nazwe()
'''
package lab3;
abstract class FiguraA {
String nazwa;
public FiguraA() {
nazwa="Figura";
}
public FiguraA(String n) {
nazwa=n;
}
public void wyswietl (){
System.out.print("\n"+nazwa);
}
}
'''
3. Kolejnym elementem jest jest utworzenie klasy konkretnej KoloA która dziedziczy po abstrakcyjnej FiguraA i implementuje FiguraI
'''
class KoloA extends FiguraA implements FiguraI{
protected double r=1,P=1,O=1;
public KoloA() {
}
public KoloA(String n) {
super(n);
}
public double oblicz_pole(double r) {
P=Math.PI*r*r;
return P;
}
public double oblicz_obwod(double r) {
O=Math.PI*r*2;
return O;
}
public void wyswietl_pole(double P) {
System.out.print("\n Pole wynosi = "+P);
}
public void wyswietl_obwod(double O) {
System.out.print("\n Obwod wynosi = "+O);
}
}
'''
I tutaj pojawiają się schody kompilator podpowiada, * KoloA is not abstract and does not override abstract method wyswietl_obwod() in FiguraI
class KoloA extends FiguraA implements FiguraI* natomiast jesli klase KoloA utworze jako abstrakcyjną to oczywiście nie moge utworzyć obiektu .
Jak można ten problem rozwiązać?
- screenshot-20170306125108.png (88 KB) - ściągnięć: 116