Ich versuche, ein Programm in Java, das eine Elternklasse RoundShapes und zwei Kinder Sphere und Cone hat, zu implementieren. Wenn ich versuche, einen Konstruktor in meinen Kindklassen zu machen, gibt es mir einen Fehler, dass der Konstruktor nicht auf diesen gegebenen Typ angewendet werden kann. Dann recherchierte ich und fand ein Tutorial zur Vererbung und sie verwendeten einen Superkonstruktor. Ich habe versucht, das zu verwenden, aber jetzt gibt es mir einen Fehler, dass Radius nicht vor dem Superkonstruktor verwendet werden kann ?! Ich war nicht im Rahmen des Konstruktors, also bin ich mir nicht sicher, was das anzeigt.Java-Vererbung Konstruktor Problem
import java.util.*;
public class Miller_A03Q4 {
public static void main(String[] args) {
Sphere sphere1 = new Sphere();
RoundShape cone1 = new RoundShape();
RoundShape.setRadius(4);
}
public static class RoundShape{
double area;
double volume;
double radius;
String shape;
//
public RoundShape(double r){
radius = r;
}
// set radius method
public void setRadius(double r){
radius = r;
}
// get area method
public double getArea(){
return area;
}
// get volume
public double getVolume(){
return volume;
}
}
// sphere is-a from roundshape
static class Sphere extends RoundShape{
public Sphere(double r){
radius = r;
}
//set area
public void setArea(){
area = 4 * Math.PI * radius * radius;
}
// get volume
public void setVolume(){
volume = (4/3) * Math.PI * radius * radius * radius;
}
}
//cone class is-a from roundshape
class Cone extends RoundShape{
double height;
//set area
public void setArea(){
area = Math.PI * radius * (radius + Math.sqrt(height * height + radius * radius));
}
// cone volume
public void setVolume(){
volume = Math.PI * radius * radius * (height/3);
}
}
}
@AndrewL. Sie werden statische innere Klassen genannt und sind ein Sprachmerkmal. – 4castle
@ 4castle wirklich? Ich denke du lernst jeden Tag etwas Neues – Li357