抽象类是一种不能被实例化的类,它被用作其它类的基类,只有子类可以继承它并实现其抽象方法。在抽象类中某些方法的实现是子类所共享的,因此在设计抽象类时需要注意以下几点:
示例代码:
// 抽象类 public abstract class Animal {
// 抽象方法1
public abstract void eat();
// 抽象方法2
public abstract void sleep();
// 具体实现方法
public void breathe() {
System.out.println("呼吸氧气");
}
// 构造函数,初始化所有抽象成员
public Animal() {
System.out.println("Animal构造函数");
}
}
// 子类 public class Dog extends Animal {
// 实现抽象方法1
@Override
public void eat() {
System.out.println("狗吃肉");
}
// 实现抽象方法2
@Override
public void sleep() {
System.out.println("狗睡觉");
}
// 调用父类非抽象方法
public void bark() {
breathe();
System.out.println("汪汪叫");
}
// 构造函数
public Dog() {
super();
System.out.println("Dog构造函数");
}
}
// 测试代码 public class Main {
public static void main(String[] args) {
// Animal animal = new Animal(); // 错误,抽象类不能被实例化
Animal dog = new Dog(); // 通过子类实例化抽象类对象
dog.eat(); // 调用子类实现的方法
dog.sleep(); // 调用子类实现的方法
// dog.bark(); // 错误,抽象类没有该方法
Dog d = new Dog