2016-04-12 5 views
0

Ich erkannte, dass ich dieses Problem hatte, als ich einfachen Code heruntertippte, um den Perimeter und das Rechteck zu finden, um das Überschreiben der Methode in Java zu demonstrieren. Kann ich die Fläche (Länge * Breite) in derselben Unterklassenmethode zurückgeben?Wie kann ich einen Wert von einer überschriebenen Methode in der Oberklasse UND die Methode in der Unterklasse zurückgeben?

package override; 

class perimeter{ 
int length,breadth; 

perimeter(){length = breadth = 0;}//default constructor 

perimeter(int length, int breadth){ 
this.length = length; 
this.breadth = breadth; 
} 

int show(int length, int breadth){ 
    return 2*(length + breadth); 
} 
} 

class area extends perimeter{ 
area(int length, int breadth){ 
    super(length,breadth); 

} 


int show(int length, int breadth){ 
    return super.show(length, breadth); 
    // how can i return this too? : return length * breadth; 
} 

} 

public class overrideshapes { 
public static void main(String args[]){ 
    area shape1 = new area(5,10); 
    System.out.println(""+ shape1.show(shape1.length,shape1.breadth)); 


} 

} 
+1

Sie können nicht, und was Sie tun möchten, ergibt keinen Sinn. Warum erweitert sich 'Bereich' um den Umfang? Bereiche sind keine Perimeter. (Es ist auch Konvention für Klassennamen Pascal-Fall: 'Area',' Perimeter', 'OverrideShapes') –

+0

Ja. Bereich kann möglicherweise Perimeter nicht erweitern. aber das Programm war nur um das Überschreiben von Methoden zu demonstrieren. Allerdings habe ich die Lösung gefunden. Vielen Dank! –

Antwort

0

Ich weiß nicht, was Sie versuchen zu tun, aber ich werde ein paar mehr erklären, was ich über Ihre Frage denke.

Ich denke, Sie wollen Umfang und Bereiche für verschiedene Polygone berechnen, so ist der beste Weg, ein Interface zu erstellen, so etwas.

public Interface Calculate { 
    public int calculateArea(int length, int width); 
} 

dann sollten Sie Ihre Schnittstelle in vielen clase nach Ihrer Polygone implementieren, zum Beispiel:

public class Square implements Calculate { 

    @Override 
    public int calculateArea(int length, int width){ 
     return length*width; //Because this is the way you calculate square areas 
    } 
} 

So haben Sie für Ihre Polygone Ihre Interface-Methode "calculateArea" mit @Override Anmerkung implementieren , so weiß jedes Polygon seine Fläche zu berechnen.

Hoffe es hilft dir.

+0

Yup. das funktioniert! Danke! –

Verwandte Themen