【Java】接口与抽象类

文章目录

接口

下面有一个接口:

interface  Shape
{
static double PI=3.14159 
double area( );//计算面积
double volume( );//计算体积
 }

请写出

  • 正方体、圆柱类、圆锥类(自己命名类名称),要求实现shape接口。
  • 为每个类编写构造方法。
  • 每个类要求写出计算表面积和体积的方法。
  • 设计类 class Test ,要求在类Test中的主方法main中创建正方体,圆柱类,圆锥类的对象,并且计算表面积、体积并输出。
interface Shape{
	static double PI=3.14159;
	double area();
	double volume();
}
class zfx implements Shape{
	private float a;
	public zfx(float a) {
		this.a=a;
	}

	@Override
	public double area() {
		return a*a*6;
	}

	@Override
	public double volume() {
		// TODO Auto-generated method stub
		return a*a*a;
	}
}
class zhu implements Shape{
	private float r,h;
	public zhu(float r,float h) {
		this.r=r;
		this.h=h;
	}

	@Override
	public double area() {
		return Shape.PI*r*r*2+2*Shape.PI*r*h;
	}

	@Override
	public double volume() {
		return r*r*h*Shape.PI;
	}
}
class zhui implements Shape{
	private float r,h;
	public zhui(float r,float h) {
		this.r=r;
		this.h=h;
	}

	@Override
	public double area() {
		float l=(float) Math.sqrt(r*r+h*h);
		return Shape.PI*r*(r+l);
	}

	@Override
	public double volume() {
		return r*r*h*Shape.PI/3.0;
	}
}
public class Test {

	public static void main(String[] args) {
		zfx z1=new zfx(5);
		zhu z2=new zhu(3, 4);
		zhui z3=new zhui(3, 4);
		System.out.printf("正方体的表面积%.2f 体积:%.2f\n",z1.area(),z1.volume());
		System.out.printf("圆柱的的表面积%.2f 体积:%.2f\n",z2.area(),z2.volume());
		System.out.printf("圆锥的的表面积%.2f 体积:%.2f\n",z3.area(),z3.volume());
	}
}

抽象类

  • 创建一个Vehicle类并将它声明为抽象类。在Vehicle类中声明一个NoOfWheels方法,使它返回一个字符串值。
  • 创建两个类Car和Motorbike从Vehicle类继承,并在这两个类中实现NoOfWheels方法。在Car类中,应当显示“四轮车”信息;而在Motorbike类中,应当显示“双轮车”信息。
  • 创建另一个带main方法的类,在该类中创建Car和Motorbike的实例,并在控制台中显示消息。
abstract class Vehicle{
	public abstract String NoOfWheels();
}
class Car extends Vehicle{
	@Override
	public String NoOfWheels() {
		return "四轮车";
	}
}
class Motorbike extends Vehicle{
	@Override
	public String NoOfWheels() {
		return "双轮车";
	}
}
public class Oth {
	public static void main(String[] args) {
			Car c1=new Car();
			Motorbike c2=new Motorbike();
			System.out.println("c1是"+c1.NoOfWheels());
			System.out.println("c2是"+c2.NoOfWheels());
	}

}
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cout0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值