浅谈Java中接口与抽象类

1、接口与抽象类的概念

抽象类:

  • 抽象类是一个特殊得类,具备类的特性,只是不能实例化对象,天生就是要被继承。它与普通方法的区别就是抽象类可以包含抽象方法,普通类不行。若一个抽象类被子类继承,则子类需要实现父类中的抽象方法,否则子类也需要被定义为抽象类。抽象类可以包含属性、方法、构造方法,但是不能用于实例化,主要用途是被子类所调用
  • 若一个类中含有抽象方法,这个类必定是抽象类,但是抽象类中不一定含有抽象方法,也可以有普通方法(被子类所调用)

接口:

  • 在JDK1.8之前,接口中可以含有变量和方法。但是要注意,接口中的变量会默认被为public static final修饰(并且只能是public static final变量),而方法方法同样默认为public abstract修饰,且只能是public abstract方法),并且接口中所有的方法不能有具体的实现,及接口中的方法都是抽象方法
  • 而在JDK1.8之后接口也可以包含非抽象方法了,但是要用 default修饰的方法)

2、接口与抽象类的区别

  • java中的接口与抽象类分别被interface与abastract关键字定义
  • 接口要被类实现,而抽象类是要被子类继承
  • 接口可以多继承接口,但抽象类只等被单继承
  • 抽象类:除了不能实例化抽象类之外,它和普通Java类没有任何区别
  • 抽象类抽象方法可以有public、protected和default这些修饰符,而接只能是public
  • 抽象类可以有成员变量,而接口只能声明常量

3、接口与抽象类的使用场景

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值