1. 定义抽象类:
// 定义抽象类
abstract class Shape {
// 抽象方法,没有具体实现
abstract void draw();
// 普通方法,有具体实现
void display() {
System.out.println("Displaying shape");
}
}
2. 继承抽象类:
// 继承抽象类,实现抽象方法
class Circle extends Shape {
void draw() {
System.out.println("Drawing a circle");
}
}
class Rectangle extends Shape {
void draw() {
System.out.println("Drawing a rectangle");
}
}
3. 使用抽象类:
public class AbstractClassExample {
public static void main(String[] args) {
// 创建子类对象
Circle circle = new Circle();
Rectangle rectangle = new Rectangle();
// 调用抽象方法
circle.draw();
rectangle.draw();
// 调用普通方法
circle.display();
rectangle.display();
}
}
在上述示例中,Shape 是一个抽象类,它包含了一个抽象方法 draw() 和一个普通方法 display()。然后,Circle 和 Rectangle 类继承了 Shape 类,并实现了抽象方法 draw()。通过这种方式,抽象类提供了一种模板,定义了子类应该具有的方法,同时允许子类提供具体的实现。
4. 抽象类的构造方法:
抽象类可以有构造方法,但不能被实例化。子类的构造方法会调用抽象类的构造方法,然后再执行子类的构造逻辑。
abstract class Shape {
int sides;
Shape(int sides) {
this.sides = sides;
}
abstract void draw();
}
class Triangle extends Shape {
Triangle() {
super(3); // 调用抽象类的构造方法
}
void draw() {
System.out.println("Drawing a triangle with " + sides + " sides");
}
}
抽象类提供了一种在继承层次结构中共享代码的方式,同时通过抽象方法,它强制要求子类提供一些必要的实现。
转载请注明出处:http://www.zyzy.cn/article/detail/13483/Java