Java接口和抽象类

本文探讨了抽象类和接口在Java中的角色。抽象类可以定义变量、静态方法和构造器,但不能实例化。它能包含抽象方法,强制子类进行实现。接口则仅允许定义抽象方法和默认方法,不能有静态变量或实例化对象。接口可继承多个接口,提供默认方法以方便扩展,而修改接口方法时不会影响到所有实现类。

抽象类

  • 可以定义抽象方法(相对于普通类)

    • 定义变量,静态变量

    • 定义方法,静态方法

    • 定义构造方法

      • 但不是自己构造对象使用,是留给子类初始化对象用的

    • 定义抽象方法

  • 不可以实例化对象(相对于普通类)、

  • 继承

    • 只能继承自一个父类

    • 可以实现多个接口

接口

  • 只允许含有抽象方法和默认方法

    • 不允许含有静态方法

    • 不允许有变量

  • 不可以实例化对象

  • 接口可以继承自多个接口

  • 不能拥有初始化块和不能拥有构造器

接口可以定义default方法

  • 实现类可以不必覆写default方法

  • default不是抽象的,即可以有自己的方法体

  • 当我们需要给接口新增一个方法时,会涉及到所有子类

  • 修改时,也只需要修改default方法即可。

  • 接口不含有字段,所以default方法无法访问字段

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值