Java视频学习笔记-面向对象-抽象与接口

abstract

可以修饰 方法

抽象类:

  1. 不能被实例化
  2. 一定包含构造器,以便子类实例化时的调用

抽象方法:

  1. 抽象方法只有方法的声明,没有方法体
  2. 抽象类不一定包含抽象方法,但是抽象方法只会存在于抽象类中。
  3. 若子类没有重写父类的抽象方法,则子类也是抽象类。

注意点

abstract 不能用于修饰 属性,构造器等结构。
abstract不能用于修饰私有方法、静态方法(不能重写)、final方法以及final类。

Interface

JDK7之前:只能定义全局常量(静态的)和抽象方法;
JDK8:可以额外定义 静态方法与默认方法;
JDK9:可以定义私有方法。

注意点

接口不能定义构造器,不能被实例化;
接口的实际使用体现了多态性,其可以看做是一种规范。

抽象类与接口

内容源自Sakura大佬的总结

  1. 接口可以继承接口,抽象类不可以继承接口,但可以实现接口。

  2. 抽象类可以继承实体类。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

  3. 抽象类可以继承实体类,就是因为抽象类的可以继承性和有方法。

  4. 一个接口可以继承多个接口. interface C extends A, B {}是可以的. 一个类可以实现多个接口: class D implements A,B,C{} 但是一个类只能继承一个类,不能继承多个类 class B extends A{} 在继承类的同时,也可以实现接口: class E extends D implements A,B,C{} 这也正是选择用接口而不是抽象类的原因。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值