抽象类与接口的区别

1.抽象类

        抽象类类中有可以有任意成员,本质还是类,普通类有的它都有,比如:构造器、普通方法、普通成员变量、静态成员变量等。有抽象方法的类一定要声明成抽象类,但是抽象类可以没有抽象方法。继承抽象类的普通类一定要实现抽象类的所有抽象方法,继承抽象类的抽象类可以不实现父抽象类的方法,抽象类的主要作用是用于设计。

2.接口

        在jdk1.7及1.7前,接口中只能有抽象方法,jdk1.8后,接口中除了可以有抽象方法还可以有默认实现方法和静态方法。接口中的属性只能是public static final的,即如果你在接口中声明了一个属性int a,实际是public static final int a,接口中的所有方法都是public方法,接口中的抽象方法,可以不用abstract修饰,如void test(),实际上是public abstract void test()。

3.两者的相同点和不同点

(1)相同点:1.两者都不能被实例化。

                        2.继承抽象类和实现接口的普通类都必须实现抽象类和接口的所有抽象方法。

(2)不同点:1.抽象类中可以有任意成员,本质还是类,而接口中只有方法和属性,方法只能是                            抽象方法、默认实现方法、静态方法,jdk1.7及1.7前甚至只能有抽象方法,接口                              中的属性只能是 public satic final的。

                        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值