[size=large]第一題:[/size]
public class JavaTestOne {
public static void main(String[] args) {
Rectangle Rec = new Rectangle(5,4);//Rectangle(length,width)
Square Squ = new Square(6);//Square(length)
System.out.println("The rectangle's area is "+Rec.calcArea());
System.out.println("The rectangle's perimeter is "+Rec.calcPerimeter());
System.out.println("The square's area is "+Squ.calcArea());
System.out.println("The square's perimeter is "+Squ.calcPerimeter());
}
}
class Rectangle{
int length;
int width;
int calcArea(){
return length*width;
}
int calcPerimeter(){
return 2*(length+width);
}
public Rectangle(int x,int y){
length=x;
width=y;
}
}
class Square extends Rectangle{
int calcArea(){
return length*length;
}
int calcPerimeter(){
return 4*length;
}
Square(int z){
super(z, z);
length=z;
}
}
注:理論上來講,正方形不應該作爲長方形的子類!
[size=large]第二題:[/size]
public class JavaTestTwo {
public static void main(String[] args) {
Rectangle Rec = new Rectangle(3,4);//Rectangle(length,width)
Square Squ = new Square(2);//Square(length)
Rec.pringtItMyWay('#');
Rec.pringtItMyWay();
Squ.pringtItMyWay('$');
Squ.pringtItMyWay();
}
}
interface Printable{
void pringtItMyWay();
void pringtItMyWay(char a);
}
class Rectangle implements Printable{
int i,j;
int length;
int width;
int calcArea(){
return length*width;
}
int calcPerimeter(){
return 2*(length+width);
}
public void pringtItMyWay(){
System.out.println("The rectangle's length is "+length);
System.out.println("The rectangle's width is "+width);
System.out.println("The rectangle's area is "+calcArea());
System.out.println("The rectangle's perimeter is "+calcPerimeter());
}
public void pringtItMyWay(char a) {
for (i=0;i<width;i++){
for (j=0;j<length;j++)
System.out.print(a);
System.out.println("");
}
}
public Rectangle(int x,int y){
length=x;
width=y;
}
}
class Square extends Rectangle implements Printable{
int calcArea(){
return length*length;
}
int calcPerimeter(){
return 4*length;
}
public void pringtItMyWay(){
System.out.println("The square's length is "+length);
System.out.println("The square's area is "+calcArea());
System.out.println("The square's perimeter is "+calcPerimeter());
}
public void pringtItMyWay(char a){
for (i=0;i<length;i++){
for (j=0;j<length;j++)
System.out.print(a);
System.out.println("");
}
}
Square(int x){
super(x,x);
length=x;
}
}
注:同樣的,正方形本不應該作爲長方形的子類出現。
本參考答案系菜鳥編寫,請各位大蝦們在留言內指出錯誤並提出修改建議,本人不勝感激!