java回顾-6 抽象类
抽象类
在Java中,抽象类(Abstract Class)是一种不能被实例化的类,它通常用于以下几种场景:
定义通用接口:抽象类可以定义一组子类共有的方法和属性,为子类提供一个通用的接口。这样,子类只需要实现具体的细节,而不需要重复定义公共部分。
部分实现:抽象类可以包含已经实现的方法,这些方法可以被所有子类共享。子类只需要实现抽象方法,而不需要重新实现已经定义好的方法。
强制子类实现特定方法:通过在抽象类中定义抽象方法,可以强制所有子类必须实现这些方法。这样可以确保子类具有某些基本功能。
代码复用:抽象类可以包含一些通用的实现,这些实现可以被多个子类复用,从而减少代码重复。
多态性:抽象类可以作为多态的基础,允许使用抽象类的引用指向其具体子类的实例,从而实现更灵活的编程。
以下是一个简单的例子,展示了抽象类的使用:
1 | // 定义一个抽象类 |
在这个例子中,Animal
是一个抽象类,定义了一个抽象方法makeSound
和一个已经实现的方法sleep
。Dog
和Cat
是Animal
的具体子类,它们必须实现makeSound
方法,但可以直接使用sleep
方法。
接口
在Java中,接口(Interface)是一种抽象类型,它定义了一组抽象方法接口interface
的特点在于,可以引用多个接口。接口默认为抽象类.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52package review;
//接口的特点在于,可以引用多个接口。
//接口默认为抽象类,的每一个方法应当实现
//1 创建接口
interface StartStop{
void start();
void stop();
}
class Car implements StartStop{
public void start() {
System.out.println("the car is start");
}
public void stop() {
System.out.println("the car is stop");
}
}
class meeting implements StartStop{
public void start() {
System.out.println("the meting is start");
}
public void stop() {
System.out.println("the meting is stop");
}
}
public class a7_interface {
//此处为抽象类特性
public static void main(String arg[]) {
StartStop array[]=new StartStop[2];
array[0]=new Car();
array[0].start();
array[1]=new meeting();
array[1].stop();
}
}