目录
参考博客:
例题要求:
- 定义一个图形抽象类,有求面积及周长的抽象方法
- 定义一个长方形类,继承图形类,属性:长、宽,重写求面积及周长的方法
- 定义一个正方形类,继承图形类,属性:边长,重写求面积及周长的方法
- 定义一个求体积的接口,接口中有求体积的抽象方法
- 定义一个长方体类,继承长方形类,实现求体积的接口,属性:高,重写求体积的方法
- 定义一个正方体类,继承正方型,实现求体积的接口
- 定义一个测试类进行测试
代码展示:
package com.soft863.demo01;
/**
*定义一个图形抽象类
*属性 长 宽
*行为 求面积 求周长
* 创建长方形类继承图形类
* 重写求面积求周长方法
* 创建正方形类继承图形类
* 重写求面积求周长方法
*
*定义一个求体积的接口
* 创建长方体类继承长方形类实现求体积接口
* 重写求体积方法
* 创建正方体类继承正方形类实现求体积接口
* 重写求体积方法
* **/
/**
* 测试类
* **/
public class myDemo1 {
public static void main(String[] args){
Shape sp=new Rectangle(6,7);
Shape sp1=new Square(5);
cuboid c=new cuboid(4,5,6);
cuboid2 cc=new cuboid2(5);
System.out.println("长方形的周长:"+sp.perimeter());
System.out.println("长方形的面积:"+sp.area());
System.out.println("正方形的周长:"+sp1.perimeter());
System.out.println("正方形的面积:"+sp1.area());
System.out.println("长方体的体积:"+c.volume());
System.out.println("正方体的体积:"+cc.volume());
}
}
/**
* 图形抽象类
* **/
abstract class Shape {
int l;
int w;
public Shape() {
}
public Shape(int l,int w){
this.l=l;
this.w=w;
}
public Shape(int l) {
this.l=l;
}
/**
* 求周长
* **/
public abstract double perimeter();
/**
* 求面积
* **/
public abstract double area();
}
/**
* 求体积接口
* **/
interface IVolume{
//体积抽象方法
double volume();
}
/**
* 长方形
* **/
class Rectangle extends Shape {
public Rectangle() {
}
public Rectangle(int l,int w){
super(l,w);
}
@Override
public double perimeter(){
return 2*(l+w);
}
@Override
public double area(){
return l*w;
}
}
/**
* 正方形
* **/
class Square extends Shape {
public Square() {
}
public Square(int l){
super(l);
}
@Override
public double perimeter(){
return l*4;
}
@Override
public double area(){
return l*l;
}
}
/**
* 长方体
* **/
class cuboid extends Rectangle implements IVolume {
int h;
public double volume() {
// 长方体体积重写
return this.l * this.w * this.h;
}
public cuboid(int l,int w,int h){
super(l,w);
this.h=h;
}
@Override
public double perimeter() {
return 0;
}
@Override
public double area() {
return 0;
}
}
/**
* 正方体
* **/
class cuboid2 extends Square implements IVolume {
public double volume() {
// 正方体体积重写
return this.l * this.l * this.l;
}
public cuboid2(int l){
super(l);
}
@Override
public double perimeter() {
return 0;
}
@Override
public double area() {
return 0;
}
}