接口&抽象类

概念

接口:主要用于定义一组行为规范,支持多实现和多态性;描述一类事物的特征(鸟、飞机、昆虫都会飞,不同的实现类来具体实现不同的飞法)

抽象类:主要用于提供类的模板和公共方法实现,支持单继承。is-a的概念:比如狗是一种动物

不同点罗列:

接口

抽象类

多实现

单继承

无构造方法

有构造方法

抽象方法,无具体实现

抽象方法+具体方法

成员变量都是常量

可以有常量和变量

接口的方法由实现类的实例化对象调用

抽象类的方法由子类对象来调用

抽象类本身是不能被实例化的,即使它的所有抽象方法都已经被完全实现。只能通过实现它的具体子类来创建对象

1、接口多实现,抽象类单继承

2、接口无构造方法,抽象类有构造方法

3、方法实现:接口中的方法都是抽象的,不包含具体的实现,需要由实现类提供具体实现。抽象类可以包含抽象方法和具体方法,具体方法可以由抽象类自身提供实现,也可以在子类中重写。

4、字段变量:接口中只能包含常量(使用final修饰的字段),不能包含普通的字段变量。抽象类可以包含常量和普通的字段变量。

5. 多态性:通过实现不同的接口,类可以具备多个角色,从而实现多态性。通过继承抽象类,子类可以拥有父类的特性和行为,实现继承的多态性。

6. 设计目的:接口用于定义一组行为合约,强调类似功能的实现,解决多重继承的问题。抽象类用于充当类的模板,提供公共的属性和方法的实现。

7. 调用方式:接口的方法调用需要通过实现类实例化对象来调用,而抽象类的方法调用可以直接通过抽象类实例化对象来调用。

具体应用场景

接口:描述一类事物的特征(鸟、飞机、昆虫都会飞,不同的实现类来具体实现不同的飞法)

1、定义规范:明确类应该实现的方法,确保不同的实现类有相同的方法,达到统一的行为约定

2、多继承:一个类可以实现多个接口。这使得接口适用于需要同时具备多个角色或功能的情况。

3、代码解耦:

接口定义

public interface 接口名称 {

// 抽象方法:使用abstract修饰,可以省略,供子类实现使用。

// 默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。

// 静态方法:使用 static 修饰,供接口直接调用。

// 私有方法:使用private修饰,供接口中默认方法或静态方法调用

//

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值