【Java SE学习】——java中的抽象类、抽象方法、接口

抽象方法

  1. 使用abstract修饰的且没有方法体的方法
  2. 不能使用private final 或static修饰
  3. 只能定义在抽象类或接口中
  4. 在接口中,抽象方法可以省略 public abstract关键字

抽象类

  1. 使用abstract修饰的类。抽象类是对逻辑的归纳
  2. 有构造器,但是不能直接用来创建对象,只留给子类创建对象时调用
  3. 可以没有抽象方法
  4. 可以有普通方法
  5. 子类继承一个抽象类,若抽象类里面有抽象方法,必须将其覆盖或者把子类也弄成抽象类
  6. 对第五条的解读:即抽象类也可以继承抽象类
  7. 抽象类中也可以包含非抽象方法(普通方法)和属性,但必须至少有一个抽象方法

接口

接口定义一种规范,规定某一批类里必须提供某些方法,要求这些类必须完全实现接口里所定义的全部抽象方法,从而实现接口中定义的功能

接口是对功能的抽象

语法格式

[修饰符] interface 接口名 extends 父接口1, 父接口2, ... {
    0-N 常量
    0-N 抽象方法
    0-N 内部类、接口、枚举
    0-N 默认方法或静态方法 // Java 8 以上才允许
}

成员特点

  1. 没有构造器,不能实例化
  2. 成员变量默认都使用public stati final 修饰,全局静态变量
  3. 抽象方法默认都使用public abstract修饰,公共的抽象方法,所以实现类中的实现方法必须使用public修饰
  4. 接口中定义的方法一般不加修饰符
  5. 接口中的默认方法不需要实现类实现

关系

  1. 接口与接口之间继承关系extends。支持多继承(类不支持多继承)
  2. 类与接口之间的关系为实现,类实现接口 implements,可以多实现
  3. 类实现接口方法时,必须要使用public修饰

抽象类与接口的区别

Java中的抽象类和接口都是对类的抽象,但它们在语法和使用上存在一些主要的区别。

首先,定义抽象类的关键字是abstract,而定义接口的关键字是interface。另外,继承抽象类的关键字是extends,而实现接口的关键字是implements。

其次,接口不能被实例化,但可以声明,而且必须引用一个实现该接口的对象。从设计层面来说,抽象类是对类的抽象,是一种模板设计;接口则是行为的抽象,是一种行为规范。

再者,抽象类可以包含抽象方法、非抽象方法、构造方法、静态方法和成员变量。但是接口只能包含抽象方法和静态常量。

最后,一个类只能继承一个直接父类(可能是抽象类),但可以实现多个接口。

总的来说,抽象类和接口都是上层的抽象层,都不能被实例化,都能包含抽象的方法。选择使用哪种,取决于具体的设计需求和规划。

  1. 定义抽象类的关键字是abstract,定义接口的关键字是interface
  2. 一般类与抽象类的关系时继承(extends),类与接口的关系时实现(implements)
  3. 抽象类是对类的抽象,是一种模板设计;接口则是行为的抽象,是一种行为规范
  4. 抽象类可以包括抽象方法、非抽象方法、构造方法、静态方法和成员变量,但是接口中只能包含抽象方法和静态常量
  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值