没有合适的资源?快使用搜索试试~ 我知道了~
首页Java编程:抽象类实现上转型,计算圆/圆锥面积与周长
"本资源是一份Java编程示例,展示了如何在Java中实现上转型(Upcasting)和对象抽象方法,以便计算圆形和圆锥的面积与周长。首先,定义了一个名为`shape1`的抽象类,它包含了两个抽象方法`getS()`和`getC()`,这两个方法分别用于计算形状的面积和周长。接着,`Circle`和`CircularCone`两个类分别继承自`shape1`,它们各自实现了这些抽象方法,具体针对圆形和圆锥的数学特性。 `Circle`类有半径`r`属性,通过`getS()`方法计算面积(πr²),`getC()`方法计算周长(2πr)。而`CircularCone`类除了半径`r`,还添加了底面长度`l`和侧面高度`s`,其`getS()`方法计算的是侧面积(πrl + πr²),`getC()`方法则保持为2πr,因为圆锥的周长主要由底面周长决定。 在`mm010`类的`main`方法中,用户通过`Scanner`类获取输入,先创建一个`Circle`对象`se`,然后将其赋值给`shape1`类型的引用`e1`,实现了上转型。接着调用`se`对象的方法计算并输出圆形的面积和周长。同样地,对于圆锥类`CircularCone`,也创建了对象`sc`,并将其赋值给另一个`shape1`类型的引用`e2`,然后进行相关操作。 这个示例体现了面向对象编程中的多态性,即子类的对象可以被父类类型的引用引用,通过动态绑定来调用子类特有的方法,使得代码更具灵活性和可扩展性。同时,抽象方法的存在使得设计更加模块化,便于复用和维护。"
资源详情
资源推荐
package taining001;
import java.util.Scanner;
abstract class shape1{
public abstract double getS();
public abstract double getC();
}
class Circle extends shape1{
double r;
public Circle(){}
public double getr(){
return r;
}
public double getS(){
return Math.PI*Math.pow(r,2);
}
public double getC(){
return Math.PI*r*2;
}
}
class CircularCone extends shape1{
double r,l,s,c;
public CircularCone(){}
public double getR(){
return r;
}
public double getL(){
return l;
}
public double getS(){
return s=Math.PI*(l*r+Math.pow(r, 2));
import java.util.Scanner;
abstract class shape1{
public abstract double getS();
public abstract double getC();
}
class Circle extends shape1{
double r;
public Circle(){}
public double getr(){
return r;
}
public double getS(){
return Math.PI*Math.pow(r,2);
}
public double getC(){
return Math.PI*r*2;
}
}
class CircularCone extends shape1{
double r,l,s,c;
public CircularCone(){}
public double getR(){
return r;
}
public double getL(){
return l;
}
public double getS(){
return s=Math.PI*(l*r+Math.pow(r, 2));
下载后可阅读完整内容,剩余2页未读,立即下载
qq_43424795
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功