抽象类也是类的一种,声明方式与声明类相似,在声明之前添加abstract
public abstarct class test{ absctract void prectice(); }声明时,可以不添加权限关键字,或者添加只能是public或者protect,因为抽象类只能被继承,不能实例化为对象。 在继承抽象类时
class test1 extends test{ public void prectice(){ //将方法实例化 } }继承抽象类时,每个子类只能有一个父类,也就是只能继承一个父类。在继承抽象类之后,如果继承父类的子类没有全部实例化方法,这个子类也只能声明为抽象类。
接口是一个抽象方法的集合 ,在接口中定义任何字段都是final和static的。
public interface test{ void prectice(); }使用接口
class test2 implements test{ public void prectice(); }在使用接口时,一个类可以继承多个接口,但是只要继承的接口,必须将全部的抽象方法进行实例化。
1:抽象类是一个类,接口是一个抽象方法的集合。 2:子类只可以继承一个抽象类,但是可以继承多个接口。 3:子类继承的抽象类可以不将全部抽象方法实例化(但是子类需要声明为抽象类),但是使用的接口必须全部实例化。不能声明为抽象类再进行继承。 4:抽象类执行速度更快。 5:抽象类是一个类,可以有构造函数,但是接口没有。