Java中的abstract关键字用于定义抽象类和抽象方法。
1. 抽象类(abstract class)是用abstract关键字修饰的类。抽象类不能被实例化,只能被继承。抽象类通常用作基类,用于定义公共的属性和方法。
例子:
```
abstract class Animal {
// 抽象方法
public abstract void sound();
// 非抽象方法
public void sleep() {
System.out.println("Animal is sleeping");
}
}
```
抽象类中可以包含抽象方法和非抽象方法。抽象方法没有具体的实现,只有方法的声明,而非抽象方法有具体的实现。子类继承抽象类时,必须实现所有的抽象方法。
2. 抽象方法(abstract method)是用abstract关键字修饰的方法。抽象方法没有具体的实现,只有方法的声明。抽象方法必须在抽象类中声明。
例子:
```
abstract class Animal {
// 抽象方法
public abstract void sound();
}
```
子类继承抽象类时,必须实现父类中的抽象方法,否则子类也必须声明为抽象类。
3. 抽象类和抽象方法的特点:
- 抽象类不能被实例化,只能被继承。
- 抽象类可以包含抽象方法和非抽象方法。
- 子类继承抽象类时,必须实现所有的抽象方法。
- 如果子类没有实现抽象类中的所有抽象方法,那么子类也必须声明为抽象类。
- 抽象类可以有构造方法,但不能通过new操作符来创建抽象类的实例。
总结:抽象类和抽象方法用于定义一种具有一定抽象性质的类和方法,它们不能直接被实例化,只能被继承和实现。抽象类和抽象方法的使用可以提高代码的灵活性和可扩展性。