Java 抽象类学习笔记

什么是抽象类

Java中的抽象类是指不能被实例化的类,它通常用于作为其他类的基类,子类必须实现抽象类中定义的方法。抽象类中可以包含抽象方法和具体方法。

抽象类的定义与继承

抽象类的定义使用 abstract 关键字,如下所示:

javaCopy Code
public abstract class Animal { public abstract void eat(); public void sleep() { System.out.println("睡觉"); } }

子类需要通过 extends 关键字继承抽象类,并实现其中的抽象方法,如下所示:

javaCopy Code
public class Dog extends Animal { @Override public void eat() { System.out.println("吃骨头"); } }

抽象类的作用

封装类的实现细节

抽象类可以封装一些类的实现细节,让子类只需要关注实现抽象方法即可。

约束子类的实现

抽象类可以约束子类必须实现抽象方法,从而确保子类的正确性和可扩展性。

抽象类的实例

以下是一个抽象类的实例,其中抽象类 Shape 定义了一个抽象方法 area(),表示计算该形状的面积。子类 RectangleCircle 继承抽象类,并实现了 area() 方法。

javaCopy Code
abstract class Shape { public abstract double area(); } class Rectangle extends Shape { double length; double width; public Rectangle(double length,double width) { this.length = length; this.width = width; } @Override public double area() { return length*width; } } class Circle extends Shape { double radius; final double pi = 3.14159265358979323846; public Circle(double radius) { this.radius = radius; } @Override public double area() { return pi*Math.pow(radius, 2); } }

可以通过以下代码进行调用:

javaCopy Code
Shape shape1 = new Rectangle(5, 4); Shape shape2 = new Circle(6); System.out.println("长方形的面积:" + shape1.area()); System.out.println("圆的面积:" + shape2.area());

输出结果为:

Copy Code
长方形的面积:20.0 圆的面积:113.09733552923254

以上就是 Java 抽象类学习笔记的全部内容。