形状类(接口)的子类(实现类):
package cn.ds.baidu.demo11.zuoye2;
public interface Shape {
public void perimeter();//周长
public void area();//面积
}
Rect(矩形)
package cn.ds.baidu.demo11.zuoye2;
import java.util.Scanner;
public class Rect implements Shape{
Scanner scanner=new Scanner(System.in);
int lon =scanner.nextInt();//长
int width=scanner.nextInt();//宽
int high=scanner.nextInt();//高
@Override
public void perimeter() {
System.out.print("矩形的长:"+lon);
System.out.print("矩形的宽:"+width);
System.out.println("矩形的高:"+high);
int perimeter=lon*2+width*2;
System.out.println("矩形的周长为:"+perimeter);
}
@Override
public void area() {
double m=(lon+width)*high;
double area=m/2;
System.out.println("矩形的面积为:"+area);
}
//:矩形周长=(长+宽)×2=长×2+宽×2
//(上边+下底)乘高/2。
}
Circle(圆形)
package cn.ds.baidu.demo11.zuoye2;
import java.util.Scanner;
public class Circle implements Shape{
double pai=3.14;
Scanner sc=new Scanner(System.in);
int perimeter=sc.nextInt();
//圆面积=圆周率×半径×半径
//圆的周长=直径×圆周率
@Override
public void perimeter() {
System.out.println("请输入圆形的直径:"+perimeter);
double perimeters=perimeter*pai;
System.out.println("圆的周长为:"+perimeters);
}
@Override
public void area() {
double area=pai*perimeter;
System.out.println("圆的面积为:"+area);
}
}
Rect类的子类:
Square(正方形)
package cn.ds.baidu.demo11.zuoye2;
import java.util.Scanner;
public class Square extends Rect{
//正方形的面积=边长×边长=a×a(其中a为正方形的边长)
//周长=边长×4
Scanner sc=new Scanner(System.in);
public void Rect(){
System.out.println("正方形的边长为:"+this.width);
int perimeter=this.width*4;
System.out.println("正方形的周长为:"+perimeter);
int area=this.width*this.width;
System.out.println("正方形的面积为:"+area);
}
}
Test
package cn.ds.baidu.demo11.zuoye2;
public class Test {
public static void main(String[] args) {
System.out.println("-----求矩形,圆,正方形的周长和面积----");
/*
* 矩形
* */
System.out.println("------>>矩形<<------");
System.out.println("请依次输入矩形长,宽,高");
Rect rect=new Rect();
rect.perimeter();
rect.area();
/*
* 圆
* */
System.out.println("-----------------------------");
System.out.println("------>>圆形<<-----");
System.out.println("请输入圆的直径");
Circle circle=new Circle();
circle.perimeter();
circle.area();
/*
* 正方形
* */
System.out.println("-----------------------------");
System.out.println("----->>正方形<<------");
System.out.println("请输入正方形的长,宽,高");
Square square=new Square();
square.Rect();
}
}
不同的子类会有不同的计算周长和面积的方法
创建三个不同的形状对象,放在Shape类型的数组里,分别打印出每个对象的周长和面积
===========
j结果
-----求矩形,圆,正方形的周长和面积----
------>>矩形<<------
请依次输入矩形长,宽,高
1
2
3
矩形的长:1矩形的宽:2矩形的高:3
矩形的周长为:6
矩形的面积为:4.5
-----------------------------
------>>圆形<<-----
请输入圆的直径
2
请输入圆形的直径:2
圆的周长为:6.28
圆的面积为:6.28
-----------------------------
----->>正方形<<------
请输入正方形的长,宽,高
2
正方形的边长为:2
正方形的周长为:8
正方形的面积为:4
版权声明:本文为m0_70066856原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。