首先了解两者的区别的话,先分别了解一下两个的含义:
抽象类:抽象类是含有抽象方法,并且被abstract修饰的类。
接下来我们来了解一下什么是抽象方法:抽象方法是被abstract修饰的方法,抽象方法只有声明,没有具体的实现。例如:
abstract void fun();
假如一个类含有抽象方法,那么这个类就是抽象类,那么这个类就需要使用abstract修饰。
抽象类是不可以被实例化的,所以抽象类就适合被继承,如果一个抽象类没有被继承,那么这个抽象类就是白写了,没有任何意义。继承抽象类,就要实现抽象了里面的方法。
那么抽象类和普通类有什么区别呢?
1.普通类可以有成员变量、成员方法。抽象类里面也可以有普通成员方法、普通变量。
2.抽象方法必须为public或者protected,如果缺省的话,就为public。
3.抽象类不可以创建对象,但是普通类是可以的。
4.如果一个类继承了一个抽象类,那么就应该实现他的抽象方法,如果没有实现抽象方法,那这个子类就会被定义为一个abstract类。
接口:是提供给其他类使用的一个方法或者函数。
在Java中,定一个接口的形式如下:
[public] interface InterfaceName {
}
接口中可以定义变量和方法,但在接口中定义的变量是 public static final修饰的变量
而方法会被定义为public abstract,且只能被定义为如此,其他修饰词会报错。
允许一个类实现多个接口。
抽象类和接口的区别
1.抽象类里面可以实现成员方法的具体细节,而接口里面方法只能是public abstract。
2.抽象类里面的成员类型是多种多样的,但是在接口里面变量只能被定义为public static final。
3.接口中不能含有静态代码块和静态方法,但是抽象类里面可以有静态代码块和静态方法。
4.一个类只能继承一个抽象类,但是一个类可以实现多个接口。