26-抽象类

1抽象类的出现

  针对某些情况,某个父类只是知道其子类应该包含怎样的方法,但无法准确地知道这些子类如何实现这些方法。

  • 抽象类中的非抽象元素(初始代码块、构造器)都是在创建其子类的实例时被调用的。
  • 抽象类不能用于创建实例,只能当做父类被其他子类继承。
  • 当使用abstract修饰类时,表明这个类只能被继承;
  • 当使用abstract修饰方法时,表明这个方法必须由子类提供实现(即重写);
  • abstract不能用于修饰成员变量,不能用于修饰局部变量;.
  • abstract不能用于修饰构造器;

1.1 abstract和final

  • final和abstract永远不能同时使用。
      原因:final修饰的类不能被继承,final修饰的方法不能被重写。而abstract修饰的类可以被继承,abstract修饰的方法一定要被子类重写,二者冲突。

1.2 abstract和static

  • static和abstract不能同时修饰某个方法;
      原因:static修饰一个方法时,该方法属于类本身,一个类不能调用一个没有方法体的方法。而abstract修饰的方法一定没有方法体,二者冲突。
      例外:static和abstract并不是绝对互斥的,static和abstract可以同时修饰内部类。

1.3 abstract和private

  • private和abstract不能同时修饰方法。
      原因:private修饰的方法不能被子继承。而abstract修饰的方法只有被子类重写后才有意义,二者冲突。

2 抽象类的作用

抽象类体现的是一种模板模式的设计。

3 抽象类遇到面试

  • abstract和final
  • abstract和static
  • abstract和private
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值