//父类
package org.jsoft.HomeWork;
public abstract class Type {
private double r; //圆的半径
private double width; //矩形的宽
private double heigh;//矩形的高
private double l;//正方形的长
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeigh() {
return heigh;
}
public void setHeigh(double heigh) {
this.heigh = heigh;
}
public double getL() {
return l;
}
public void setL(double l) {
this.l = l;
}public abstract void typ1();//抽象方法,子类需要重写
}
//子类
//圆
package org.jsoft.HomeWork;
public class Circle extends Type{
@Override
public void typ1() {//重写父类的type1方法
// TODO Auto-generated method stub
System.out.println("半径为"+getR()+"的圆");
}
}
//矩形
package org.jsoft.HomeWork;
public class Rectangle extends Type{
@Override
public void typ1() {//重写父类的type1方法
// TODO Auto-generated method stub
System.out.println("长为"+getHeigh()+",宽为"+getWidth()+"的矩形");
}
}
//正方形
package org.jsoft.HomeWork;
public class Square extends Type {//重写父类的type1方法
@Override
public void typ1() {
// TODO Auto-generated method stub
System.out.println("边长为"+getL()+"的正方形");
}
}
//测试类
package org.jsoft.HomeWork;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
while(true){
System.out.println("输入0、1、2来查询相应的形状");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
Test t=new Test(); //创建一个本类 类型的对象
t.getShape(a); // 调用本类的getShape方法
} }
public void getShape(int i){
if(i==0){//执行对应圆的语句
Type p=new Circle(); //创建一个Type类型的 Circle对象
p.setR(6);//给半径赋值
p.typ1();//调用Circle中的Type1方法
}
if(i==1){//执行对应矩形的语句
Type p=new Rectangle();//创建一个Type类型的Rectangle对象
p.setHeigh(3);//给长赋值
p.setWidth(2);//给宽赋值
p.typ1();//调用Rectangle中的Type1方法
}if(i==2){//执行对应正方形的语句
Type p=new Square();//创建一个Type类型的Square对象
p.setL(2);//给边长赋值
p.typ1();//调用Square中的Type1方法
}
}
}