Java——抽象类和接口

什么是抽象类

就是被abstract所修饰的类,父类将所有子类的共性功能向上抽取后,他并不知道每个子类对这个功能的具体实现,所以没必要在父类中给出共性功能的具体实现,而是给出声明即可。所谓给出功能的声明,就是将此功能抽象出来,然后强制子类必须重写抽象功能。

注意事项
  1. 一旦一个类中,有了抽象方法,那么子类必须为抽象类。
  2. 一个抽象类中可以没有抽象方法。
  3. 抽象类中既可以有抽象方法,也可以有非抽象方法。抽象方法强制子类重写。非抽象方法子类继承下去。
  4. 抽象类不能实例化,可以采取多态的方式间接实例化。
  5. 抽象类的子类,要么重写父类中的所有抽象方法,要么自己也是一个抽象类。
  6. 抽象类中有构造方法,用来子类初始化父类用的。
关键字abstract不能与那些共存
  1. pravite:私有的,不参与继承何谈抽象
  2. final:最终的修饰方法,方法不重写。修饰类,类不能被继承。
  3. static:用静态词修饰的不参与继承,故也无意义。
什么是接口

interface,用来定义一些扩展功能,哪些事物,将来想要具备这个功能,可以实现(implements)这个接口,然后对功能做出具体实现。

注意事项
  1. 用来定义一些额外的功能。
  2. 接口就是用来定义一些规则(规范),实现功能扩展。
  3. 接口中成员变量全是静态的公共常量。 public static final 默认修饰符
  4. 接口中没有构造方法。
  5. 接口全是抽象方法。public abstract 默认修饰符。
接口和抽象类的区别
  1. 思想
    抽象类,抽取所有子类的共性功能,并强制子类对共性功能进行重写。
    接口,定义的是整个继承体系当中的一些额外功能,哪些类想具备这些扩展功能,可以去实现这个接口。
  2. 语法
  • 抽象类中有构造方法,接口中没有构造方法。
  • 抽象类中既可以有抽象方法,也可以有非抽象方法。接口中全是抽象方法。
  • 抽象类中接口有成员变量,也可以有常量。接口中全是公共的静态的常量。
    自我理解
    因为抽象类中的所有的方法,无论使用不使用都需要去重写,就造成了在编写过程中的麻烦,而接口在实现的过程中,不需要重写那么多,接口可以多实现,也弥补了单继承性质的不足。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值