Java抽象类与接口的运用

目录

例题要求:

代码展示:

结果展示:

参考博客:​​​​​​​


例题要求:

  1. 定义一个图形抽象类,有求面积及周长的抽象方法
  2. 定义一个长方形类,继承图形类,属性:长、宽,重写求面积及周长的方法
  3. 定义一个正方形类,继承图形类,属性:边长,重写求面积及周长的方法
  4. 定义一个求体积的接口,接口中有求体积的抽象方法
  5. 定义一个长方体类,继承长方形类,实现求体积的接口,属性:高,重写求体积的方法
  6. 定义一个正方体类,继承正方型,实现求体积的接口
  7. 定义一个测试类进行测试

代码展示:

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;
    }
}

结果展示:

参考博客:

(1条消息) Java题目总结1_季沐晴的博客-CSDN博客_个public string tostring( )方法,该方法返回的信息是:“学号”+“姓名”+“https://blog.csdn.net/weixin_45901806/article/details/118992432


(1条消息) Java实验——设计一个抽象类图形类_生菜虾的博客-CSDN博客_设计图形类及其子类javahttps://blog.csdn.net/lil_ghost_/article/details/125733157

 (1条消息) 定义一个抽象类,计算图形的面积和周长_啊咦哟哟的博客-CSDN博客_定义抽象类:图形,抽象方法—求面积 (指出:图形必须有求面积的方法,但因为不同图形https://blog.csdn.net/weixin_45614136/article/details/101533439

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值