在java中,接口和抽象类的异同

如题所述

一个类可以有多个接口 只能有继承一个父类
抽象类可以有构造方法,接口中不能有构造方法。
抽象类中可以有普通成员变量,接口中没有普通成员变量
接口里边全部方法都必须是abstract的 抽象类的可以有实现了的方法
抽象类中的抽象方法的访问类型可以是public,protected 但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型
抽象类中可以包含静态方法,接口中不能包含静态方法
抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-05
A:说说继承的关系
抽象类,可以被子类继承(单继承)
接口只可以被,子类,或者抽象类,实现(多实现)
接口与接口之间的关系是继承(注:可以多继承)

B:说说成员属性吧:
接口所有的成员权限都是public最大的;
接口里面的变量都是final修饰为最终的变量无法变更,只可以拿来使用!
接口里面的方法必须全部是抽象方法,无方法体!
接口方法和变量修饰都是固定的,如果你不写,编译时候会自动帮你补齐,少什么补什么..

抽象类的方法,可以有抽象方法也可以有非抽象方法!

C:如果子类实现了接口或者继承了抽象类,抽象方法必须被重写,且权限必须大于等于父类权限!
如果一个类实现了一个接口,没有去重写方法,那么这个类也就成了要给抽象类!

我也就记得这么多了,不足之处还请指点;

本回答被提问者采纳
相似回答