Java基础学习之接口和抽象类的概念、区别及适用的场景

1.接口

  接口是抽象方法的集合,一个接口只有方法的形状而没有方法的具体实现,接口是Java面向对象提供的一种机制。
  Java语言是一种单继承的,在类的继承中通过实现多个接口间接实现了多继承功能。接口的声明:

[public] interface InterfaceName{
    void method1(int arg1);
    void method2();
    ...
}

2.抽象类

  抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。抽象类声明:

[public] abstract class ClassName {
    abstract void fun();
    void fun2();
    ...
}

3.接口和抽象类区别

  (1)、接口只能包含抽象方法,抽象类可以包含普通方法;
  (2)、接口的方法都是完全抽象的,并且方法必须是public,而且默认方法是public abstract的,抽象中的方法可以被public,protected等修饰符修饰;
  (3)、子类用implements来实现接口,子类需要实现接口中的所有方法,但继承抽象类可以不重写父类中非抽象方法,抽象类中的抽象方法必须被重写;
  (4)、一个类可以实现多个接口,但只能继承最多一个抽象类,接口可以继承一个或者多个接口;
  (5)、抽象类中可以有普通成员变量,接口中没有普通成员变量,只能有常量;
  (6)、抽象类中的方法可以被static修饰,接口中的方法不可以被static修饰;
  (7)、抽象类可以有构造函数,接口不可以有构造函数。
  PS:相同点是都不能实例化(不能new),都有抽象方法,子类中必须对父类方法进行重写。

4.接口和抽象类的使用场景

  接口主要用于实现多继承的场景以及模块与模块之间的调用情况,抽象类主要用于当做基础类使用,即基类(基类里面的一些方法都有默认的方法实现,即实现接口的公用的代码,个性化的方法由各个子类去实现)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值