在java中用abstract
关键字声明的类称为抽象类。 它可以有抽象和非抽象方法(带主体的方法)。
在学习java抽象类之前,先来了解java中的抽象。
Java中的抽象
抽象是隐藏实现细节并仅向用户显示功能的过程。
另一种方式,它只向用户显示重要的事情,并隐藏内部详细信息,例如:发送短信,只需输入文本并发送消息。您也不需要知道有关邮件传递的内部处理过程。
抽象可以让你专注于对象做什么(实现的功能),而不是它如何做。
实现抽象的方法
在java中有两种实现抽象的方法,它们分别是:
- 抽象类(部分)
- 接口 (完全)
1. Java中的抽象类
使用 abstract
关键字声明的类被称为抽象类。需要扩展和实现它的方法。 它不能被实例化。
抽象类示例
abstract class A{
}
Java
抽象方法
一个被声明为 abstract
而没有实现的方法称为抽象方法。
抽象方法示例
abstract void printStatus();//no body and abstract
Java
具有抽象方法的抽象类的示例
在这个例子中,Bike
是一个抽象类,只包含一个抽象方法:run()
。 它由 Honda
类提供实现。
abstract class Bike {
abstract void run();
}
class Honda4 extends Bike {
void run() {
// run 方法的实现
System.out.println("running safely..");
}
public static void main(String args[]) {
Bike obj = new Honda4();
obj.run();
}
}
Java
上面示例中的代码执行结果如下 -
running safely..
Java
理解抽象类的真实应用场景
在这个例子中,Shape
是一个抽象类,它的实现分别由Rectangle
和Circle
类提供。 大多数情况下,我们不知道实现类(即对最终用户隐藏),实现类的对象由工厂方法提供。
工厂方法是用于返回类的实例的方法。 稍后我们将在下一节中了解和学习工厂方法。
在这个例子中,创建Rectangle
类的实例,Rectangle
类的draw()
方法将被调用。创建一个类文件:TestAbstraction1.java
,它的代码如下所示 -
abstract class Shape {
abstract void