我有3個類,我有一個方法在我的矩形類,檢查如果高度和寬度是相同的長度,但是,如果我在我的三角類設置高度和寬度,並繼承我的三角類它說,矩形isSquare()方法爲true,因爲它使用默認值0.0和0.0。它如何不繼承我在三角類中分配的內容?在Java中繼承類變量值?
class inheritence {
private double width;
private double height;
public void setHeight(double height){
this.height=height;
}
public double getHeight(){
return height;
}
public void setWidth(double width){
this.width=width;
}
public double getWidth(){
return width;
}
void showDim(){
System.out.println("Width and height are "+width+" and "+height);
}
}
class Triangle extends inheritence{
String style;
double area(){
return getHeight()* getWidth();
}
void showStyle(){
System.out.println("Triangle is "+style);
}
}
public class Rectangle extends Triangle{
boolean isSquare(){
if(getWidth()==getHeight()){
return true;
}else{
return false;
}
}
public double area(){
return getWidth()*getHeight();
}
}
public class Driver {
public static void main(String[]args){
Triangle t1=new Triangle();
Triangle t2=new Triangle();
Rectangle rect=new Rectangle();
t1.setHeight(10);
t1.setWidth(20);
if(rect.isSquare()){
System.out.println("Its a square!");
}else{
System.out.println("Its not a square");
}
System.out.println(t1.getHeight());
System.out.println(t1.getWidth());
t1.showDim();
System.out.println("The area for t1 is "+t1.area());
t1.style="Outlined";
t1.showStyle();
}
}
它最初應該是真實的。一旦你改變了寬度和高度屬性,那麼它可能會有所不同。而矩形不是一種三角形,所以這不是一個非常好的分類結構。 – ManoDestra
...一個矩形肯定不是一個三角形,所以你的繼承結構是錯誤的(和形狀傳統上反正是有問題的)。而且,三角形的面積無論如何都是錯誤的。 –
大聲笑,我知道這是可怕的分類結構,但我想知道爲什麼它不會工作 – Eli