接口与抽象类的区别

1、接口是多态的一种形式,可以制定规则,降低耦合度;接口的属性,默认都是静态方法,或者只是常量属性,或者只是抽象方法,接口的方法都是抽象方法,如果要定义具体方法实现,此方法需要使用default修饰,接口中的方法访问权限不能是private,接口与接口之间可以实现多继承,但不能互相实现,接口中不能存在构造方法
2、抽象类由abstract修饰,抽象类作用降低接口与接口实现类之间实现的难度,抽象类可以声明抽象方法,也可以生成具体方法,抽象类生成抽象方法必须由子类进行重写,抽象类有构造方法,但不能使用
3、相同点与不同点
1都不能被实例化,也就是说接口与抽象类都是多态的一种形式
2子类继承抽象类时,子类必须重写抽象类中所有抽象方法,否则子类也是抽象类
3接口类实现接口,实现类必须重写接口所有抽象方法,否则实现类也是抽象类
==============================================
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然
eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7.一个类可以实现多个接口,但只能继承一个抽象类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值