抽象类和接口

抽象类

  1. abstract关键字修饰的类就是抽象类,抽象类中可以定义抽象方法。抽象方法没有方法体,只有修饰符、返回类型以及方法名和参数列表。反之,普通类中不能存在抽象方法

  2. 抽象类中可以写普通方法,普通类中不能写抽象方法

  3. 抽象类不能new出来,只能靠子类去extends,所以抽象类必须被继承。其子类有几个算几个,都必须实现这个抽象父类的抽象方法,除非子类也是抽象类

  4. 在java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类可以实现多个接口

  5. 抽象类也存在构造器,但是构造方法和类方法(static修饰的方法,也即静态方法)不能声明为抽象方法。其实好理解,因为构造方法是在new对象时执行的,而抽象类不能被new,所以冲突,故构造方法不能是抽象方法;而static修饰的方法不能被子类重写,而抽象方法又必须被重写,所以也冲突

接口

  1. 普通类中只有具体实现(普通方法),抽象类中既有具体实现(普通方法)又有规范(抽象方法),接口中只有规范(抽象方法)。因为默认接口中只有抽象方法,相当于默认加了public abstract,所以开发时一般只写方法名和参数列表
  2. 接口中定义的属性默认加了public static final,也就是说默认都是常量
  3. 类声明的关键字是class,接口声明的关键字是interface
  4. 接口必须有实现类,实现类命名时一般以impl结尾,使用implements关键字来实现接口,必须重写接口的所有抽象方法
  5. 一个类可以实现多个接口,但是所有的接口的方法都必须被其实现类重写
  6. 接口不能被实现,接口中没有构造方法
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值