Java头歌 9-3 认识抽象类

第1关:选择题

任务描述

本关任务: 学习参考资料,完成选择题。

相关知识

为了完成本关任务,你需要掌握: 1.抽象类,2.抽象方法。

抽象类

public abstract class Shape { //抽象方法 //普通方法
} 说明: 抽象类是用关键字abstract修饰的类; 抽象类中可以包含抽象方法和普通方法,也可以没有抽象方法。

抽象方法

用abstract修饰的方法,且没有方法体。 比如: abstract class shape{ abstract double getArea(); } 说明: shape 是抽象类; getArea()是抽象方法,末尾以分号结束。

第2关:图形类及其矩形类和圆类的实现

任务描述

本关任务: 1.定义抽象类Shape,包含两个抽象方法getArea()和getCircum(),分别实现获取图形的面积和周长。一个普通方法print()用于输出面积和周长。 2.基于Shape类定义矩形类Ranctangle和圆类Circle。圆类包含数据成员有半径,矩形类包含数据成员的有长、宽,每个类都要重写从Shape类继承的两个抽象方法getArea()和getCircum():计算并获取面积和周长。 3.在测试类中创建圆类和矩形类的对象,调用方法print()输出面积和周长。

相关知识

为了完成本关任务,你需要掌握: 1.抽象类的定义, 2.抽象方法的定义, 3.基于父类定义子类, 4.方法重写, 5.创建类的对象,并通过对象调用方法。

测试输入: 预期输出: 周长:31.400000000000002面积:78.5 周长:12.0面积:8.0

提示: 数据无输出格式要求。

/*编程要求:请在下面标注 【】 的位置添加代码  */
//定义形状类Shape
abstract class Shape{
	public abstract double GetArea();   //定义抽象方法GetArea()
	public abstract double GetCircum(); //定义抽象方法GetCircum()
    public void print()
	{
		System.out.println("周长:"+GetCircum()+"面积:"+GetArea());
	}
}
//矩形类,从形状类Shape派生
class Rectangle extends Shape{
	  double width;
	  double length;
	public Rectangle(double wid,double len){
	    this.width=wid;
	    this.length=len;
	}
    //重写GetArea()方法
	public double GetArea(){
        return(width*length);
    }
 
    //重写GetCircum()方法
	public double GetCircum(){
        return(width+width+length+length);
    }
	
}
//圆类,从形状类派生
class Circle extends Shape{
	public double radius;
	public Circle(double r){
	  this.radius=r;
	}
	 //重写GetArea()方法
	public double GetArea(){
        return(radius*radius*3.14);
    }
 
    //重写GetCircum()方法
	public double GetCircum(){
        return(2*3.14*radius);
    }
}
//测试类Test
public class ShapeTest {
	public static void main(String[] args){
		Circle cir=new Circle(5);          //创建圆的对象cir
		Rectangle rec=new Rectangle(2,4);  //创建矩形的对象rec
		cir.print();                       //输出圆的的信息
		rec.print();						//输出矩形的的信息		
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值