Java中抽象类和接口的区别

Number区别抽象类接口
1定义关键字abstract classinterface
2组成属性、常量、抽象方法、构造方法、普通方法抽象方法和全局常量
3权限可以使用各种权限只能够是public
4子类实现利用extends关键字可以继承一个抽象类利用implements关键字可以实现多个接口
5关系抽象类可以实现多个接口接口不能够继承抽象类,接口却可以利用extends关键字实现接口的多继承。
6对象实例化依靠子类对象的向上转型实现抽象类的实例化操作依靠子类对象的向上转型实现接口的实例化操作
7设计模式模板设计模式工厂设计模式、单利设计模式(重点重点再重点)
8操作局限具有单继承局限没有单继承局限

通过机上几点的比较我们发现, 抽象类和接口实际上都可以限制子类必须要覆写的方法要求,但是由于抽象类本身存在有单继承局限,所以再以后的开发中。如果发现抽象类和接口都可以同时使用时,一定要记住接口优先。而抽象类在实际的应用中往往是作为接口与普通类之间的过度类使用。

不同点:

抽象类:

1.抽象类中可以定义构造器
2.可以有抽象方法和具体方法
3.接口中的成员全都是 public 的
4.抽象类中可以定义成员变量
5.有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法
6.抽象类中可以包含静态方法
7.一个类只能继承一个抽象类

接口:

1.接口中不能定义构造器
2.方法全部都是抽象方法
3.抽象类中的成员可以是 private、默认、 protected、 public
4.接口中定义的成员变量实际上都是常量
5.接口中不能有静态方法
6.一个类可以实现多个接口

相同点:

1.不能够实例化
2.可以将抽象类和接口类型作为引用类型
3.一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要
被声明为抽象类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值