- 抽象类中的具体方法
抽象类可以包含具体的方法,这些方法可以被其子类直接复用。
abstract class Shape {
// 具体方法,计算周长的通用部分(这里以正方形为例简单示意)
public double calculateCommonPerimeter(double side) {
return 4 * side;
}
// 抽象方法,由子类实现
public abstract double calculateArea();
}
class Square extends Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double calculateArea() {
return side * side;
}
}
- 构造方法
抽象类的构造方法可以帮助初始化一些通用的成员变量,实现代码复用。
abstract class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public abstract void makeSound();
}
class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println(name + " says woof!");
}
}