AP计算机A自学笔记:抽象类

本文探讨了Java中的抽象类概念,强调抽象类通过使用abstract关键字定义,并指出含有抽象方法的类必须声明为抽象类。内容包括抽象方法的特点,即不包含具体实现,其功能由继承的子类实现。文章通过Shape、Circle和Square为例,说明抽象类及其子类的关系,并指出子类必须实现所有抽象方法,否则自身也需要定义为抽象类。同时,提到了抽象类可以拥有实体方法和构造函数,并且多态同样适用于抽象类。
摘要由CSDN通过智能技术生成

抽象类使用关键字abstract定义,如果一个类里有任何抽象方法,此类必须定义为抽象类
抽象类包括抽象方法,抽象方法没有任何实际内容,这些方法的具体功能由继承它的子类实现
抽象类的子类必须把超类里的所有抽象方法全部具体化,否则此子类也要定义为抽象类

public abstract class Shape {
   private String name;
   
   
   //constructor
   public Shape(String shapeName) {
	   name = shapeName;
   }
   
   
   public String getName() {
	   return name;
   }
   
   
   public abstract double area();
   public abstract double perimeter();
   
   
   public double semiPerimeter() {
	   return perimeter() / 2;
   }
}

抽象类Shape

public class Circle extends Shape {

	private double radius;
	
	//constructor
	public Circle (double circleRadius, String circleName) {
		super(circleName);
		radius = circleRadius;
	}
	
	
	public double perimeter() {
		return Math.PI * radius * 2;
	}
	
	
	public double area() {
		return Math.PI * radius * radius;
	}
	

Shape的子类Circle

public class Square extends Shape{
  
	private double side;
	
	//constructor
	public Square(double squareSide, String squareName) {
		super(squareName);
		side = squareSide;
	}
	
	
	public double perimeter() {
		return 4 * side;
	}
	
	
	public double area() {
		return side * side;
	}

Shape子类Square

注意:
一个抽象类既可以有抽象方法也可以有实体方法。一个抽象类还可以不含任何抽象方法
一个抽象类可以有也可以没有构造方法
多态对抽象类依然适用

 Shape circ = new Circle(10, "circle");
	   Shape sq = new Square(9.4, "Square");
	   Shape s = null;
	   Scanner input = new Scanner(System.in);
	   String str = input.nextLine();
	   if (str.equals("circle")) {
		   s = circ;
	   } else {
		   s = sq;
	   }
	   System.out.println(s.getName() + " " + s.area());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值