`
xiaoheichuangtianya
  • 浏览: 28820 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

接口与抽象类

    博客分类:
  • java
阅读更多
抽象类

什么是抽象类

使用abstract关键字修饰的类就是抽象类,抽象类不能new对象,原因在于抽象类含有抽象方法,不能被调用。
没有方法体的方法为抽象方法,使用abstract关键字修饰。
有抽象方法的类必须声明为抽象类,抽象类不一定含有抽象方法。

为什么要定义抽象类

如果有多个类具有相同的方法声明,而方法的实现不一样,这时就可以抽象出父类,将方法在父类中声明
别人在学习我们的软件时,只需要学习父类就知道子类有什么方法
在设计软件时,要尽力抽象父类,继承关系以3~4层为宜


接口


什么是接口


接口是一种特殊的抽象类,接口中声明的所有方法都是抽象的

使用interface关键字修饰一个接口

接口的用法

我们可以定义一个类来实现接口,使用implements关键字
实现一个接口需要实现接口中所有的方法,抽象类除外
通常使用匿名内部类来实现一个接口
接口可以继承接口,使用extends关键字。 接口不能继承抽象类,因为抽象类中可能有不抽象的方法。

一个类可以实现多个接口,为了实现多态
接口中的方法和变量
接口中定义的方法默认是公有的抽象的,被public abstract修饰
接口中定义的变量默认为全局常量,使用public static final修饰
bstract class和interface的区别
抽象类中可以有不抽象的方法,接口中全是抽象的方法
抽象类用extends继承,接口用implements实现
抽象类中的变量和方法没有默认修饰符,接口中的变量默认为public static final的,接口中的方法默认为public abstract
一个类只能继承一个抽象类,一个类可以实现多个接口
什么时候用抽象类,什么时候用接口
如果能用接口,就不用抽象类,因为别人实现接口可以不占用继承的位置。
如果定义一个抽象的父类,其中所有方法都是抽象的,那么就定义为接口。
如果定义一个抽象的父类的时候,需要有不抽象的方法,那么只能定义为抽象类。
分享到:
评论

相关推荐

    接口与抽象类区别

    接口与抽象类区别 在软件开发中,接口和抽象类是两个常用的概念,但它们之间的区别却让许多人感到困惑。那么,什么是抽象类和接口?它们之间有什么区别?下面,我们就来详细地探讨这个问题。 一、抽象类 抽象类是...

    java中接口与抽象类的详细分析与比较

    在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性的关键...通过阅读"java中接口与抽象类的详细分析与比较.doc"文档,你将获得更深入的洞察和实践指导,进一步提升你的Java编程能力。

    Java语言的接口与抽象类

    4. 绑定关系:抽象类与子类有从属绑定,接口与实现类之间没有这种绑定。 5. 动态绑定:两者都支持运行时多态,即父类引用指向子类对象。 在使用原则方面: 1. 抽象类:通常用于一组相关子类共享代码,减少代码冗余...

    C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

    C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例 C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

    Java接口与抽象类课件

    Java接口与抽象类的课件,适合初学者,主要对接口与抽象类进行简要介绍,PPT版本。

    Kotlin接口与抽象类的详细解析及应用场景

    接着深入探讨了类与对象的基本用法,并详细讲解了接口和抽象类的作用,包括它们的异同点和组合使用方式。文章通过丰富的示例代码展示了如何在实际编程中利用接口和抽象类来实现多态和代码复用。 适合人群:初学者到...

    接口与抽象类区别PPT优秀资料.ppt

    3. 抽象类与接口的选择 在选择抽象类定义方式时,需要考虑问题领域的本质理解和设计意图是否正确、合理。abstract class 和 interface 之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,但是...

    C#面向对象高级:接口与抽象类的深度解析及应用场景

    内容概要:本文详细介绍了C#面向对象编程中的接口与抽象类的定义、实现及其在实际开发中的应用场景。首先,文章回顾了面向对象编程的基础概念,包括类与对象、封装、继承和多态。接着,详细探讨了接口和抽象类的定义...

    接口与抽象类的入门小程序(C# VS2010 )

    本项目"接口与抽象类的入门小程序"是针对C#开发者,使用Visual Studio 2010编译环境的一个实践教程,旨在帮助初学者理解和掌握这两种关键的类组织结构。 接口(Interface)在C#中是一种完全抽象的类型,它定义了一...

    Kotlin接口与抽象类详解及其应用

    最后比较了接口和抽象类的区别,讨论了它们在不同场景下的最佳实践,并探讨了密封类与接口结合使用的优点。 适合人群:有一定Kotlin基础的开发者,特别是对面向对象编程和设计模式感兴趣的程序员。 使用场景及目标:...

    java 抽象类与接口的练习

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计...通过这样的练习,你可以更好地理解和掌握Java中的抽象类与接口,以及它们在实际开发中的应用。在实践中不断尝试和调试,将有助于深化对这两个概念的理解。

    java高级类操作 接口与抽象类的操作

    Java中的高级类操作涉及到抽象类和接口的使用。抽象类是一种不能被实例化的类,它主要用来被其他类继承,定义共有的属性和方法。接口则是一种完全抽象的类型,用于定义一组方法签名,实现多继承的效果。 首先,让...

    接口与抽象类的区别以及一些java基础

    // 接口中的方法只能通过对象调用,不能通过类名调用 }}在Java中,接口和抽象类都是用于实现多态性的重要工具,但它们之间存在显著的区别: 1. **接口(Interface)**: - 接口是一个完全抽象的类型,它只包含...

    特征之接口与抽象类PPT学习教案.pptx

    特征之接口与抽象类PPT学习教案.pptx

    接口与抽象类的主要区别

    在编程领域,接口和抽象类是面向对象设计中两种重要的机制,它们用于定义类的行为和结构。虽然两者在某些方面有相似之处,但它们在概念、实现方式和用途上存在显著差异。 首先,抽象类是一种特殊的类,它不能被实例...

    C#接口与抽象类的详解

    在编程语言中,C#提供了两种机制来实现多态性和代码重用,即抽象类和接口。虽然两者在某些方面有相似之处,但它们在设计理念和使用场景上有显著的差异。 首先,我们来深入理解抽象类。抽象类是一种特殊的类,它不能...

    接口和抽象类的区别(面向对象)

    接口与抽象类的区别 抽象方法是必须实现的方法。就象动物都要呼吸。但是鱼用鳃呼吸,猪用肺呼吸。 动物类要有呼吸方法。怎么呼吸就是子类的事了。 现在有很多讨论和建议提倡用interface代替abstract类,两者从...

Global site tag (gtag.js) - Google Analytics