Java中接口和抽象类的对比

1:抽象类

抽象类也是类的一种,声明方式与声明类相似,在声明之前添加abstract

public abstarct class test{
	absctract void prectice();
}

声明时,可以不添加权限关键字,或者添加只能是public或者protect,因为抽象类只能被继承,不能实例化为对象。
在继承抽象类时

class test1 extends test{
	public void prectice(){
		//将方法实例化
	}
}

继承抽象类时,每个子类只能有一个父类,也就是只能继承一个父类。在继承抽象类之后,如果继承父类的子类没有全部实例化方法,这个子类也只能声明为抽象类。

2:接口

接口是一个抽象方法的集合 ,在接口中定义任何字段都是final和static的。

public interface test{
	void prectice();
}

使用接口

class test2 implements test{
	public void prectice();
}

在使用接口时,一个类可以继承多个接口,但是只要继承的接口,必须将全部的抽象方法进行实例化。

抽象类与接口的区别

1:抽象类是一个类,接口是一个抽象方法的集合。
2:子类只可以继承一个抽象类,但是可以继承多个接口。
3:子类继承的抽象类可以不将全部抽象方法实例化(但是子类需要声明为抽象类),但是使用的接口必须全部实例化。不能声明为抽象类再进行继承。
4:抽象类执行速度更快。
5:抽象类是一个类,可以有构造函数,但是接口没有。

猜你喜欢

转载自blog.csdn.net/Xiang_lhh/article/details/107055004