package xiti6;
abstract class Shapes{ //原定义类名为Shape,怎奈前面不同包中有出现过Shape类,且定义为public
abstract void area();
abstract void perimeter();
}
class Rectangle extends Shapes{
double a,b;
Rectangle(double a,double b){
this.a=a;
this.b=b;
}
void area(){
System.out.println("矩形的面积是:"+a*b);
}
void perimeter(){
System.out.println("矩形的周长是:"+2*(a+b));
}
}
class Triangle extends Shapes{
double c,d,e,f;
Triangle(double c,double f){
this.c=c;
this.f=f;
}
Triangle(double c,double d,double e){
this.c=c;
this.d=d;
this.e=e;
}
void area(){
System.out.println("三角形的面积是:"+0.5*c*f);
}
void perimeter(){
System.out.println("三角形的周长是:"+(c+d+e));
}
}
class Circles extends Shapes{ //原定义类名为Circle,怎奈前面不同包中有出现过Circle类,且定义为public
double r; //所以只能在此重命名,提醒大家权限符一定要用好,尤其出现包多时候。
double π=3.1415926;
Circles(double r){
this.r=r;
}
void area(){
System.out.println("圆的面积是:"+π*r*r);
}
void perimeter(){
System.out.println("圆的周长是:"+2*π*r);
}
}
class Oval extends Shapes{
double m,n;
double π=3.1415926;
Oval(double m,double n){
this.m=m;
this.n=n;
}
void area(){
System.out.println("椭圆形的面积是:"+π*m*n);
}
void perimeter(){
System.out.println("椭圆形的周长是:"+(2*π*n+4*(m-n)));
}
}
public class Fifth {
public static void main(String[] args) {
Rectangle rectangle=new Rectangle(2, 4);
rectangle.area();
rectangle.perimeter();
Triangle triangle=new Triangle(2, 1.2);
triangle.area();
Triangle triangles=new Triangle(2,5,3.333);
triangles.perimeter();
Circles circle=new Circles(1.111);
circle.area();
circle.perimeter();
Oval oval=new Oval(3.45189,1.2987345);
oval.area();
oval.perimeter();
}
}
《Java实战开发经典》第六章6.5
最新推荐文章于 2025-01-08 10:26:10 发布
本文介绍了一个抽象类Shapes及其实现不同形状面积与周长计算的具体子类,包括矩形Rectangle、三角形Triangle、圆Circles和椭圆形Oval。通过继承抽象类并覆盖抽象方法的方式,实现了多种形状的面积和周长计算。
112

被折叠的 条评论
为什么被折叠?



