什么是抽象类?怎么定义
抽象类是一种不能被实例化的类,它的主要作用是用于被其他类继承。抽象类可以包含抽象方法和非抽象方法,而抽象方法必须被子类实现。通常情况下,抽象类用于定义一些通用的行为或属性,具体的实现则由子类来完成。
在 Java 中,可以通过使用 abstract 关键字来定义抽象类。抽象类的定义方式与普通类类似,但需要在类名前加上 abstract 关键字,如下所示:
public abstract class Animal {
// 抽象方法
public abstract void move();
// 非抽象方法
public void sleep() {
System.out.println("睡觉");
}
}
在上面的代码中,我们定义了一个名为 Animal 的抽象类,包含一个抽象方法 move() 和一个非抽象方法 sleep()。抽象方法没有方法体,只有方法签名,用于指定方法的名称、参数列表和返回值类型。而非抽象方法则包含了方法体,可以直接在方法中编写代码。
需要注意的是,如果一个类包含了抽象方法,那么该类必须也是抽象类。抽象类不能被实例化,但可以被子类继承。子类必须实现父类中的所有抽象方法,否则子类也必须被定义为抽象类。
以下是一个示例代码,演示了如何继承抽象类并实现其中的抽象方法:
public class Cat extends Animal {
// 实现抽象方法
public void move() {
System.out.println("跑步");
}
// 重写父类方法
public void sleep() {
System.out.println("打盹");
}
}
在上面的代码中,我们定义了一个名为 Cat 的类,它继承了 Animal 抽象类,并实现了其中的抽象方法 move()。同时,我们重写了父类中的 sleep() 方法,用于改变其行为。现在,Cat 类可以被实例化并调用其中的方法。