发布时间:2024-10-26 10:01
3 抽象类
定义一个抽象类shape,包括公有的计算面积area方法,计算体积volume方法,输出基本信息方法printinfo(三个方法均为抽象方法)。
从shape派生point类,增加私有数据成员x,y坐标,以及构造方法。从point派生circle类,增加私有数据成员半径r,以及构造方法。
从circle派生cylinder类,增加私有数据成员高度h,以及构造方法。
在main方法中,定义shape类的对象,引用派生类的对象,输出三类对象的基本信息,面积,体积。
public class Test {
public static void main(String[] args) {
System.out.println("Point");
shape sp1 = new Point(2, 2);
sp1.printinfo();
System.out.println("Circle");
shape sp2 = new Circle(2);
sp2.printinfo();
sp2.area();
System.out.println("Cylinder");
shape sp3 = new Cylinder(2);
sp3.printinfo();
sp3.volume();
}
}
abstract class shape {
abstract void area();
abstract void printinfo();
abstract void volume();
}
class Point extends shape {
private int x, y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
int getx() {
return x;
}
int gety() {
return y;
}
@Override
void area() {
// TODO Auto-generated method stub
}
@Override
void printinfo() {
// TODO Auto-generated method stub
System.out.println(getx() + "," + gety());
}
@Override
void volume() {
// TODO Auto-generated method stub
}
}
class Circle extends Point {
private int r;
public Circle(int r) {
super(2, 2);
this.r = r;
}
int getr() {
return r;
}
void area() {
System.out.println("area:" + r * r * 3.14);
}
void printinfo() {
System.out.println(getx() + "," + gety() + "," + getr());
}
}
class Cylinder extends Circle {
private int h;
Cylinder(int h) {
super(2);
this.h = h;
}
int geth() {
return h;
}
void printinfo() {
System.out.println(getx() + "," + gety() + "," + getr() + "," + geth());
}
void volume() {
System.out.println("volume:" + 3.14 * Math.pow(super.getr(), 2) * geth());
}
}
vue-cli2.x旧版本卸载不掉的问题踩坑指南(附Vue脚手架安装教程)
@insert mybatis踩坑记录,实体接收前端传递的参数
报错 | vue.runtime.esm.js?c320:4560 [Vue warn]: Error in render: “TypeError: Cannot read properties of
助力人工智能迈向新阶段,YLearn因果学习开源项目重磅发布!
【USENIX ATC】支持异构GPU集群的超大规模模型的高效的分布式训练框架Whale
axios上传文件错误:Current request is not a multipart request
这些年遇到的RocketMQ消息消费超时/消费异常重试机制导致的重复消费问题(并发消费和顺序消费)源码分析