接口和抽象类的区别

接口和抽象类的区别

今天看了一下接口和抽象类的概念,觉得还是有些模糊不清,所以写在下面希望能帮助大家区分一下,有不足的地方欢迎指正。

接口:接口是一种规范,规范是什么,规范就是规则,就是大家都要遵守的事情,接口的出现就是把某一些行为方法收集起来,形成大家的共识,比如在公司不准穿拖鞋,迟到扣工资等…

接口可以被实现,接口中的变量会被隐式地指定为public static final,接口是一种特殊的抽象类,要实现接口需要重写接口中的抽象方法。

抽象类:是对类的抽象,当你关注事物本性的时候,就用抽象类

抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。

相同点
接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。

不同点
1.接口只能有定义,不能有方法的实现(java 1.8,接口中可以有方法体。default类型的方法。)
2.实现接口的关键字为implements继承抽象类的关键字为extends,一个类可以实现多个接口,但只能继承一个抽象类。
3.接口中成员变量默认为public static final,必须赋值不能被修改,抽象类中的成员变量默认default可以在子类中重新被定义也可以被赋值

注意:
抽象类中不一定全是抽象方法,但是抽象方法必须存在于抽象类中

抽象类被定义以后不便于维护修改,慎用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值