`
october731
  • 浏览: 86611 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

觉得接口能做的事情,抽象类都可以完成,以至于怀疑接口存在的意义

 
阅读更多
    以至于开始怀疑接口存在的意义。
    首先讨论接口和抽象类两者的特点。
    接口,定义方法,方法不能实现,这些方法在实现的时候必须是public,也就是我们通常所说的接口定义动作。接口不能定义属性。
    抽象类,比较灵活。可以定义私有的方法,并且可以定义普通的方法。如果一定要约束子类必须要实现的方法,可以直接用abstract来修饰。但是抽象类内部的方法不一定要全部都是abstract,也就是说,抽象类内部的方法可以有自己的实现。
    简单的结合自己当前的经历分析了一下,觉得接口能做的事情,用抽象类都可以实现。就算是在完成多态的时候,多态的那个对象不管用抽象类来定义还是用接口来定义,用具体的实现类来实例化,这些都没有问题。
    那接口还有什么存在的意义呢?
分享到:
评论

相关推荐

    详细解析Java中抽象类和接口的区别

    这反映了两者在概念上的不同定位:抽象类强调的是“是什么”的关系(例如,狗是动物的一种),而接口强调的是“能做什么”的关系(例如,飞行动物可以飞行)。 ##### 多态性与扩展性 - **抽象类**:当需要添加新的...

    C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

    1. 抽象类可以定义字段、属性和方法实现,而接口仅能声明这些成员。 2. 抽象类是一个不完整的类,需要派生类完成其定义,接口则更像一种行为规范。 3. 接口可以被多重实现,而抽象类只能被单一继承。 4. 抽象类常...

    接口与抽象类区别

    接口与抽象类区别 在软件开发中,接口和抽象类是两个常用的概念,但它们之间的区别...抽象类是一种特殊的类,它可以定义字段、属性、方法实现,而接口是一种特殊的抽象类,它只能定义属性、索引器、事件、和方法声明。

    Java 接口和抽象类

    抽象类和接口都可以实现多态性。在上面的练习中,我们使用抽象类和接口来实现多态性。在 LivingThing 抽象类中,我们定义了一个抽象方法 dance(String dancingStyle),然后在 Human 和 Monkey 中实现了该方法。在 ...

    java利用接口和抽象类改写求圆的面积和梯形的面积.docx

    接口和抽象类都可以包含抽象方法,这些方法在实现接口或继承抽象类的具体子类中必须被实现。 尽管在一定程度上接口和抽象类看起来非常相似,甚至在某些场景下可以互换使用,但实际上它们在设计理念上存在显著差异。...

    Java抽象类和接口和继承之间关系

    "Java抽象类和接口和继承之间关系" Java抽象类和接口是两种不同的概念,它们之间存在着继承关系。在Java中,抽象类(abstract class)和接口(interface)都是用来描述对象的行为和状态的,但它们之间有着明显的...

    C#抽象类与接口方法

    【C#抽象类与接口方法】在C#编程语言中,抽象类和接口是两种用于实现多态性和封装的关键概念,它们允许我们设计灵活、可扩展的代码结构。 抽象类是一种特殊的类,它不能被实例化,而是作为其他类的基类使用。抽象类...

    java 抽象类与接口的练习

    然而,抽象类可以包含已实现的方法和字段,而接口不能。 接口与抽象类的选择取决于具体的设计需求。如果关注的是行为的规范,且可能有多个实现者,那么接口是更好的选择。如果需要共享实现细节或者提供默认行为,...

    c# 中抽象类和接口的学习

    1. **实例化**:抽象类不能直接实例化,而接口也不能实例化,但是任何类都可以实现接口,而无需继承。 2. **成员实现**:抽象类可以包含抽象和非抽象成员,而接口只能包含抽象成员。 3. **继承限制**:C#中一个类...

    抽象类和接口

    ### 抽象类与接口详解 #### 一、引言 在Java编程语言中,抽象类(abstract class)和接口(interface)是两种非常重要的概念,它们为开发者提供了定义抽象行为的能力,从而使得代码更加灵活且易于扩展。尽管这两者...

    java抽象类与接口实例java抽象类与接口实例

    java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例...

    Java抽象类与接口实验报告

    Java抽象类与接口实验报告

    java 抽象类与接口的区别

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们都用于实现多态性,但各自具有不同的特点和应用场景。了解并熟练掌握它们的区别对于编写高质量的Java代码至关重要。 首先,抽象类是一种不能被...

    浅析Java抽象类和接口的比较

    Java中的抽象类(abstract class)和接口(interface)都是用于创建抽象化模型的重要工具,它们在面向对象编程中扮演着核心角色。这两种机制都允许我们定义一组方法的签名,但不提供具体实现,从而实现“设计契约”...

    java中的抽象类和接口的理解

    5. **抽象类只能被一个子类继承**:一个类可以从多个接口继承,但是只能从一个抽象类继承。 #### 三、接口(Interface) 接口是一种完全抽象的类型,用于定义一组方法签名而不提供任何实现。接口可以看作是一组...

    接口和抽象类使用详细实例源代码

    而一个“行动”接口可能包含`move()`和`eat()`两个方法,一个“汽车”类和一个“人”类都可以实现这个接口,表示它们都能移动和进食,但具体实现各不相同。 在实际项目中,合理使用抽象类和接口可以提高代码的灵活...

    第7章 抽象类与接口.ppt

    在Java编程语言中,抽象类和接口是两种重要的机制,用于实现代码的抽象和多态性。本章主要探讨了这两个概念以及它们在实际编程中的应用。 首先,抽象类(abstract class)是一种不能被实例化的类,它通常含有至少一...

    C#中抽象类和接口的区别.txt

    - 接口同样可以存在于任何命名空间中,但在某些场景下,如跨项目引用时可能更倾向于使用接口。 8. **设计模式**: - 抽象类通常用于实现模板方法模式等设计模式。 - 接口更适合于实现依赖注入、策略模式等。 9....

    抽象类和接口的区别

    那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类, 如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现, 那么就可以将这个方法声明为abstract方法...

Global site tag (gtag.js) - Google Analytics