Abstract(抽象)与Interface(接口)的区别

本文详细解析了Java中抽象类(abstract class)与接口(interface)的区别,包括它们的定义、使用方式及应用场景。强调了抽象类适用于定义部分实现的行为模板,而接口则侧重于定义类之间的交互规范。

Abstract(抽象)与Interface(接口)的区别

        声明方法的存在而不去实现它的类被叫做抽象类(abstrace class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract类的实例,即不能abstract类中,实现abstract方法;但是可以实现非abstract的方法。可以创建一个变量,其类型是一个抽象类,并让它指向具体了类的一个实例。不能有抽象构造函数或抽象静态方法。abstract类的子类为它们的父类中的所有抽象方法提供实现,否则它们也是抽象殴打。可以在子类中重写父类的方法。

abstract资料参考我的Java中的abstract类

接口(Interface)是抽象类的变体。在接口中,所有的方法都抽象的,没有一个有程序体。多继承性可以通过实现这样的接口而获得。接口只可以定义static final成员变量。由于有抽象类,它允许使用接口名作为引用变量的类型,引用的变量必须有一个对象进行接收,否则会出现编译错误。instanceof运算符(关键字)可以用来决定某对象的类是否实现了接口,用法:System.out.println(p instanceof Person);,其中p是子类,Person是接口,结果返回boolean值。

 

总结:

1、共同点

    两者都是抽象类,都不能实现化

    Interface实现类和abstract继承类都必须实现抽象方法

2、不同点

    Interface(接口)需要实现,用implements;abstract(抽象)需要继承,用exends

    一个类可以实现多个Interface;一个类只能继承一个abstract

    Interface强调功能的实现;abstract强调从属关系

    Interface的所有抽象类都只有声明没有方法体;abstract抽象方法可以选择实现,也可以选择继续声明为抽象方法,无需实现,留给子类去实现

3、Interface的应用场合

    类与类之间需要特定的接口进行协调,而不在乎其如何实现

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值