packageChapter4;abstractclassShape{abstractvoidGetArea();abstractvoidGetPerim();}classRectangleextendsShape{privatedoublechang;privatedoublekuan;Rectangle(doublea,doubleb...
package Chapter4;
abstract class Shape{
abstract void GetArea();
abstract void GetPerim();
}
class Rectangle extends Shape{
private double chang;
private double kuan;
Rectangle(double a,double b){
chang=a;
kuan=b;
}
void GetArea(){
System.out.println("该矩形的面积是: "+(chang*kuan));
}
void GetPerim(){
System.out.println("该矩形的周长是: "+2*(chang+kuan));
}
}
class Circle extends Shape{
private double R;
final static double PI=3.14;
Circle(double a){
R=a;
}
void GetArea(){
System.out.println("该Circle的面积是: "+(R*R*PI));
}
void GetPerim(){
System.out.println("该Circle的周长是: "+2*R*PI);
}
}
class Square extends Rectangle{
Square(double a){
super(a,a); // 疑问处!
}
}
public class example3 {
public static void main(String args[]){
Shape s=new Circle(2.0);
s.GetArea();
Shape s1=new Rectangle(2,3);
s1.GetArea();
Rectangle s2=new Square(2);
s2.GetArea();
}
}
对应疑问处 将super(a,a)改成
super.chang=a;
super.kuan=a;
为什么会运行不正确呢??
展开