Java 抽象类学习笔记
什么是抽象类
Java中的抽象类是指不能被实例化的类,它通常用于作为其他类的基类,子类必须实现抽象类中定义的方法。抽象类中可以包含抽象方法和具体方法。
抽象类的定义与继承
抽象类的定义使用 abstract
关键字,如下所示:
javaCopy Codepublic abstract class Animal {
public abstract void eat();
public void sleep() {
System.out.println("睡觉");
}
}
子类需要通过 extends
关键字继承抽象类,并实现其中的抽象方法,如下所示:
javaCopy Codepublic class Dog extends Animal {
@Override
public void eat() {
System.out.println("吃骨头");
}
}
抽象类的作用
封装类的实现细节
抽象类可以封装一些类的实现细节,让子类只需要关注实现抽象方法即可。
约束子类的实现
抽象类可以约束子类必须实现抽象方法,从而确保子类的正确性和可扩展性。
抽象类的实例
以下是一个抽象类的实例,其中抽象类 Shape
定义了一个抽象方法 area()
,表示计算该形状的面积。子类 Rectangle
和 Circle
继承抽象类,并实现了 area()
方法。
javaCopy Codeabstract 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 CodeShape 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 抽象类学习笔记的全部内容。